<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span class="hs-pragma">{-# LANGUAGE FlexibleContexts       #-}</span><span>
</span><span id="line-2"></span><span class="hs-pragma">{-# LANGUAGE FlexibleInstances      #-}</span><span>
</span><span id="line-3"></span><span class="hs-pragma">{-# LANGUAGE FunctionalDependencies #-}</span><span>
</span><span id="line-4"></span><span class="hs-pragma">{-# LANGUAGE OverloadedStrings      #-}</span><span>
</span><span id="line-5"></span><span class="hs-pragma">{-# LANGUAGE RankNTypes             #-}</span><span>
</span><span id="line-6"></span><span class="hs-pragma">{-# LANGUAGE ScopedTypeVariables    #-}</span><span>
</span><span id="line-7"></span><span class="hs-comment">-- | This module provides @newtype@ wrappers to be used with &quot;Distribution.FieldGrammar&quot;.</span><span>
</span><span id="line-8"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">Distribution.FieldGrammar.Newtypes</span><span> </span><span class="hs-special">(</span><span>
</span><span id="line-9"></span><span>    </span><span class="annot"><span class="hs-comment">-- * List</span></span><span>
</span><span id="line-10"></span><span>    </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#alaList"><span class="hs-identifier">alaList</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-11"></span><span>    </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#alaList%27"><span class="hs-identifier">alaList'</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-12"></span><span>    </span><span class="annot"><span class="hs-comment">-- ** Modifiers</span></span><span>
</span><span id="line-13"></span><span>    </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#CommaVCat"><span class="hs-identifier">CommaVCat</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-14"></span><span>    </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#CommaFSep"><span class="hs-identifier">CommaFSep</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-15"></span><span>    </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#VCat"><span class="hs-identifier">VCat</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-16"></span><span>    </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#FSep"><span class="hs-identifier">FSep</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-17"></span><span>    </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#NoCommaFSep"><span class="hs-identifier">NoCommaFSep</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-18"></span><span>    </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#Sep"><span class="hs-identifier">Sep</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-19"></span><span>    </span><span class="annot"><span class="hs-comment">-- ** Type</span></span><span>
</span><span id="line-20"></span><span>    </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#List"><span class="hs-identifier">List</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-21"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Set</span></span><span>
</span><span id="line-22"></span><span>    </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#alaSet"><span class="hs-identifier">alaSet</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-23"></span><span>    </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#alaSet%27"><span class="hs-identifier">alaSet'</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-24"></span><span>    </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#Set%27"><span class="hs-identifier">Set'</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-25"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Version &amp; License</span></span><span>
</span><span id="line-26"></span><span>    </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#SpecVersion"><span class="hs-identifier">SpecVersion</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-27"></span><span>    </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#TestedWith"><span class="hs-identifier">TestedWith</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-28"></span><span>    </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#SpecLicense"><span class="hs-identifier">SpecLicense</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-29"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Identifiers</span></span><span>
</span><span id="line-30"></span><span>    </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#Token"><span class="hs-identifier">Token</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-31"></span><span>    </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#Token%27"><span class="hs-identifier">Token'</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-32"></span><span>    </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#MQuoted"><span class="hs-identifier">MQuoted</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-33"></span><span>    </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#FilePathNT"><span class="hs-identifier">FilePathNT</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-34"></span><span>    </span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-35"></span><span>
</span><span id="line-36"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Compat.Newtype.html"><span class="hs-identifier">Distribution.Compat.Newtype</span></a></span><span>
</span><span id="line-37"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Compat.Prelude.html"><span class="hs-identifier">Distribution.Compat.Prelude</span></a></span><span>
</span><span id="line-38"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Prelude.html#"><span class="hs-identifier">Prelude</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-39"></span><span>
</span><span id="line-40"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.CabalSpecVersion.html"><span class="hs-identifier">Distribution.CabalSpecVersion</span></a></span><span>
</span><span id="line-41"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Compiler.html"><span class="hs-identifier">Distribution.Compiler</span></a></span><span>         </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Compiler.html#CompilerFlavor"><span class="hs-identifier">CompilerFlavor</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-42"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.License.html"><span class="hs-identifier">Distribution.License</span></a></span><span>          </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.License.html#License"><span class="hs-identifier">License</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-43"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Parsec.html"><span class="hs-identifier">Distribution.Parsec</span></a></span><span>
</span><span id="line-44"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Pretty.html"><span class="hs-identifier">Distribution.Pretty</span></a></span><span>
</span><span id="line-45"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Version.html"><span class="hs-identifier">Distribution.Version</span></a></span><span>
</span><span id="line-46"></span><span>       </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.VersionInterval.html#LowerBound"><span class="hs-identifier">LowerBound</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Types.Version.html#Version"><span class="hs-identifier">Version</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Types.VersionRange.Internal.html#VersionRange"><span class="hs-identifier">VersionRange</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Types.VersionRange.Internal.html#VersionRangeF"><span class="hs-identifier">VersionRangeF</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Types.VersionRange.Internal.html#anyVersion"><span class="hs-identifier">anyVersion</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Types.VersionInterval.html#asVersionIntervals"><span class="hs-identifier">asVersionIntervals</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Types.VersionRange.Internal.html#cataVersionRange"><span class="hs-identifier">cataVersionRange</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Types.Version.html#mkVersion"><span class="hs-identifier">mkVersion</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Types.Version.html#version0"><span class="hs-identifier">version0</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Types.Version.html#versionNumbers"><span class="hs-identifier">versionNumbers</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-47"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../pretty/src/Text.PrettyPrint.html#"><span class="hs-identifier">Text.PrettyPrint</span></a></span><span>              </span><span class="hs-special">(</span><span class="annot"><a href="../../pretty/src/Text.PrettyPrint.HughesPJ.html#Doc"><span class="hs-identifier">Doc</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../pretty/src/Text.PrettyPrint.HughesPJ.html#comma"><span class="hs-identifier">comma</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../pretty/src/Text.PrettyPrint.HughesPJ.html#fsep"><span class="hs-identifier">fsep</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../pretty/src/Text.PrettyPrint.HughesPJ.html#punctuate"><span class="hs-identifier">punctuate</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../pretty/src/Text.PrettyPrint.HughesPJ.html#text"><span class="hs-identifier">text</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../pretty/src/Text.PrettyPrint.HughesPJ.html#vcat"><span class="hs-identifier">vcat</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-48"></span><span>
</span><span id="line-49"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="../../containers/src/Data.Set.html#"><span class="hs-identifier">Data.Set</span></a></span><span>                        </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">Set</span></span><span>
</span><span id="line-50"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="Distribution.Compat.CharParsing.html"><span class="hs-identifier">Distribution.Compat.CharParsing</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">P</span></span><span>
</span><span id="line-51"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="Distribution.SPDX.html"><span class="hs-identifier">Distribution.SPDX</span></a></span><span>               </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">SPDX</span></span><span>
</span><span id="line-52"></span><span>
</span><span id="line-53"></span><span class="hs-comment">-- | Vertical list with commas. Displayed with 'vcat'</span><span>
</span><span id="line-54"></span><span class="hs-keyword">data</span><span> </span><span id="CommaVCat"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#CommaVCat"><span class="hs-identifier hs-var">CommaVCat</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="CommaVCat"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#CommaVCat"><span class="hs-identifier hs-var">CommaVCat</span></a></span></span><span>
</span><span id="line-55"></span><span>
</span><span id="line-56"></span><span class="hs-comment">-- | Paragraph fill list with commas. Displayed with 'fsep'</span><span>
</span><span id="line-57"></span><span class="hs-keyword">data</span><span> </span><span id="CommaFSep"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#CommaFSep"><span class="hs-identifier hs-var">CommaFSep</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="CommaFSep"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#CommaFSep"><span class="hs-identifier hs-var">CommaFSep</span></a></span></span><span>
</span><span id="line-58"></span><span>
</span><span id="line-59"></span><span class="hs-comment">-- | Vertical list with optional commas. Displayed with 'vcat'.</span><span>
</span><span id="line-60"></span><span class="hs-keyword">data</span><span> </span><span id="VCat"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#VCat"><span class="hs-identifier hs-var">VCat</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="VCat"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#VCat"><span class="hs-identifier hs-var">VCat</span></a></span></span><span>
</span><span id="line-61"></span><span>
</span><span id="line-62"></span><span class="hs-comment">-- | Paragraph fill list with optional commas. Displayed with 'fsep'.</span><span>
</span><span id="line-63"></span><span class="hs-keyword">data</span><span> </span><span id="FSep"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#FSep"><span class="hs-identifier hs-var">FSep</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="FSep"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#FSep"><span class="hs-identifier hs-var">FSep</span></a></span></span><span>
</span><span id="line-64"></span><span>
</span><span id="line-65"></span><span class="hs-comment">-- | Paragraph fill list without commas. Displayed with 'fsep'.</span><span>
</span><span id="line-66"></span><span class="hs-keyword">data</span><span> </span><span id="NoCommaFSep"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#NoCommaFSep"><span class="hs-identifier hs-var">NoCommaFSep</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="NoCommaFSep"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#NoCommaFSep"><span class="hs-identifier hs-var">NoCommaFSep</span></a></span></span><span>
</span><span id="line-67"></span><span>
</span><span id="line-68"></span><span class="hs-keyword">class</span><span>    </span><span id="Sep"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#Sep"><span class="hs-identifier hs-var">Sep</span></a></span></span><span> </span><span id="local-6989586621679681474"><span class="annot"><a href="#local-6989586621679681474"><span class="hs-identifier hs-type">sep</span></a></span></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-69"></span><span>    </span><span id="prettySep"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#prettySep"><span class="hs-identifier hs-type">prettySep</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/Data.Proxy.html#Proxy"><span class="hs-identifier hs-type">Proxy</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681474"><span class="hs-identifier hs-type">sep</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="../../pretty/src/Text.PrettyPrint.HughesPJ.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../pretty/src/Text.PrettyPrint.HughesPJ.html#Doc"><span class="hs-identifier hs-type">Doc</span></a></span><span>
</span><span id="line-70"></span><span>
</span><span id="line-71"></span><span>    </span><span id="local-6989586621679681475"><span id="local-6989586621679681477"><span id="parseSep"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#parseSep"><span class="hs-identifier hs-type">parseSep</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Parsec.html#CabalParsing"><span class="hs-identifier hs-type">CabalParsing</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681477"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="../../base/src/Data.Proxy.html#Proxy"><span class="hs-identifier hs-type">Proxy</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681474"><span class="hs-identifier hs-type">sep</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679681477"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681475"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679681477"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621679681475"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span></span></span><span>
</span><span id="line-72"></span><span>
</span><span id="line-73"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#Sep"><span class="hs-identifier hs-type">Sep</span></a></span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#CommaVCat"><span class="hs-identifier hs-type">CommaVCat</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-74"></span><span>    </span><span id="local-6989586621679681214"><span class="annot"><span class="annottext">prettySep :: Proxy CommaVCat -&gt; [Doc] -&gt; Doc
</span><a href="#local-6989586621679681214"><span class="hs-identifier hs-var hs-var hs-var hs-var">prettySep</span></a></span></span><span>  </span><span class="annot"><span class="annottext">Proxy CommaVCat
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="../../pretty/src/Text.PrettyPrint.HughesPJ.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="annot"><span class="annottext">([Doc] -&gt; Doc) -&gt; ([Doc] -&gt; [Doc]) -&gt; [Doc] -&gt; Doc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; [Doc] -&gt; [Doc]
</span><a href="../../pretty/src/Text.PrettyPrint.HughesPJ.html#punctuate"><span class="hs-identifier hs-var">punctuate</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="../../pretty/src/Text.PrettyPrint.HughesPJ.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span>
</span><span id="line-75"></span><span>    </span><span id="local-6989586621679681201"><span class="annot"><span class="annottext">parseSep :: forall (m :: * -&gt; *) a.
CabalParsing m =&gt;
Proxy CommaVCat -&gt; m a -&gt; m [a]
</span><a href="#local-6989586621679681201"><span class="hs-identifier hs-var hs-var hs-var hs-var">parseSep</span></a></span></span><span>   </span><span class="annot"><span class="annottext">Proxy CommaVCat
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621679681200"><span class="annot"><span class="annottext">m a
</span><a href="#local-6989586621679681200"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-76"></span><span>        </span><span id="local-6989586621679681199"><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="#local-6989586621679681199"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">m CabalSpecVersion
forall (m :: * -&gt; *). CabalParsing m =&gt; m CabalSpecVersion
</span><a href="Distribution.Parsec.html#askCabalSpecVersion"><span class="hs-identifier hs-var">askCabalSpecVersion</span></a></span><span>
</span><span id="line-77"></span><span>        </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="#local-6989586621679681199"><span class="hs-identifier hs-var">v</span></a></span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion -&gt; CabalSpecVersion -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&gt;=</span></span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="Distribution.CabalSpecVersion.html#CabalSpecV2_2"><span class="hs-identifier hs-var">CabalSpecV2_2</span></a></span><span> </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">m a -&gt; m [a]
forall (m :: * -&gt; *) a. CabalParsing m =&gt; m a -&gt; m [a]
</span><a href="Distribution.Parsec.html#parsecLeadingCommaList"><span class="hs-identifier hs-var">parsecLeadingCommaList</span></a></span><span> </span><span class="annot"><span class="annottext">m a
</span><a href="#local-6989586621679681200"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">m a -&gt; m [a]
forall (m :: * -&gt; *) a. CabalParsing m =&gt; m a -&gt; m [a]
</span><a href="Distribution.Parsec.html#parsecCommaList"><span class="hs-identifier hs-var">parsecCommaList</span></a></span><span> </span><span class="annot"><span class="annottext">m a
</span><a href="#local-6989586621679681200"><span class="hs-identifier hs-var">p</span></a></span><span>
</span><span id="line-78"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#Sep"><span class="hs-identifier hs-type">Sep</span></a></span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#CommaFSep"><span class="hs-identifier hs-type">CommaFSep</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-79"></span><span>    </span><span id="local-6989586621679681191"><span class="annot"><span class="annottext">prettySep :: Proxy CommaFSep -&gt; [Doc] -&gt; Doc
</span><a href="#local-6989586621679681191"><span class="hs-identifier hs-var hs-var hs-var hs-var">prettySep</span></a></span></span><span> </span><span class="annot"><span class="annottext">Proxy CommaFSep
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="../../pretty/src/Text.PrettyPrint.HughesPJ.html#fsep"><span class="hs-identifier hs-var">fsep</span></a></span><span> </span><span class="annot"><span class="annottext">([Doc] -&gt; Doc) -&gt; ([Doc] -&gt; [Doc]) -&gt; [Doc] -&gt; Doc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; [Doc] -&gt; [Doc]
</span><a href="../../pretty/src/Text.PrettyPrint.HughesPJ.html#punctuate"><span class="hs-identifier hs-var">punctuate</span></a></span><span> </span><span class="annot"><span class="annottext">Doc
</span><a href="../../pretty/src/Text.PrettyPrint.HughesPJ.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span>
</span><span id="line-80"></span><span>    </span><span id="local-6989586621679681182"><span class="annot"><span class="annottext">parseSep :: forall (m :: * -&gt; *) a.
CabalParsing m =&gt;
Proxy CommaFSep -&gt; m a -&gt; m [a]
</span><a href="#local-6989586621679681182"><span class="hs-identifier hs-var hs-var hs-var hs-var">parseSep</span></a></span></span><span>   </span><span class="annot"><span class="annottext">Proxy CommaFSep
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621679681181"><span class="annot"><span class="annottext">m a
</span><a href="#local-6989586621679681181"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-81"></span><span>        </span><span id="local-6989586621679681180"><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="#local-6989586621679681180"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">m CabalSpecVersion
forall (m :: * -&gt; *). CabalParsing m =&gt; m CabalSpecVersion
</span><a href="Distribution.Parsec.html#askCabalSpecVersion"><span class="hs-identifier hs-var">askCabalSpecVersion</span></a></span><span>
</span><span id="line-82"></span><span>        </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="#local-6989586621679681180"><span class="hs-identifier hs-var">v</span></a></span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion -&gt; CabalSpecVersion -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&gt;=</span></span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="Distribution.CabalSpecVersion.html#CabalSpecV2_2"><span class="hs-identifier hs-var">CabalSpecV2_2</span></a></span><span> </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">m a -&gt; m [a]
forall (m :: * -&gt; *) a. CabalParsing m =&gt; m a -&gt; m [a]
</span><a href="Distribution.Parsec.html#parsecLeadingCommaList"><span class="hs-identifier hs-var">parsecLeadingCommaList</span></a></span><span> </span><span class="annot"><span class="annottext">m a
</span><a href="#local-6989586621679681181"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">m a -&gt; m [a]
forall (m :: * -&gt; *) a. CabalParsing m =&gt; m a -&gt; m [a]
</span><a href="Distribution.Parsec.html#parsecCommaList"><span class="hs-identifier hs-var">parsecCommaList</span></a></span><span> </span><span class="annot"><span class="annottext">m a
</span><a href="#local-6989586621679681181"><span class="hs-identifier hs-var">p</span></a></span><span>
</span><span id="line-83"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#Sep"><span class="hs-identifier hs-type">Sep</span></a></span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#VCat"><span class="hs-identifier hs-type">VCat</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-84"></span><span>    </span><span id="local-6989586621679681176"><span class="annot"><span class="annottext">prettySep :: Proxy VCat -&gt; [Doc] -&gt; Doc
</span><a href="#local-6989586621679681176"><span class="hs-identifier hs-var hs-var hs-var hs-var">prettySep</span></a></span></span><span> </span><span class="annot"><span class="annottext">Proxy VCat
</span><span class="hs-identifier">_</span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="../../pretty/src/Text.PrettyPrint.HughesPJ.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span>
</span><span id="line-85"></span><span>    </span><span id="local-6989586621679681167"><span class="annot"><span class="annottext">parseSep :: forall (m :: * -&gt; *) a.
CabalParsing m =&gt;
Proxy VCat -&gt; m a -&gt; m [a]
</span><a href="#local-6989586621679681167"><span class="hs-identifier hs-var hs-var hs-var hs-var">parseSep</span></a></span></span><span>   </span><span class="annot"><span class="annottext">Proxy VCat
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621679681166"><span class="annot"><span class="annottext">m a
</span><a href="#local-6989586621679681166"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-86"></span><span>        </span><span id="local-6989586621679681165"><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="#local-6989586621679681165"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">m CabalSpecVersion
forall (m :: * -&gt; *). CabalParsing m =&gt; m CabalSpecVersion
</span><a href="Distribution.Parsec.html#askCabalSpecVersion"><span class="hs-identifier hs-var">askCabalSpecVersion</span></a></span><span>
</span><span id="line-87"></span><span>        </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="#local-6989586621679681165"><span class="hs-identifier hs-var">v</span></a></span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion -&gt; CabalSpecVersion -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&gt;=</span></span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="Distribution.CabalSpecVersion.html#CabalSpecV3_0"><span class="hs-identifier hs-var">CabalSpecV3_0</span></a></span><span> </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">m a -&gt; m [a]
forall (m :: * -&gt; *) a. CabalParsing m =&gt; m a -&gt; m [a]
</span><a href="Distribution.Parsec.html#parsecLeadingOptCommaList"><span class="hs-identifier hs-var">parsecLeadingOptCommaList</span></a></span><span> </span><span class="annot"><span class="annottext">m a
</span><a href="#local-6989586621679681166"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">m a -&gt; m [a]
forall (m :: * -&gt; *) a. CabalParsing m =&gt; m a -&gt; m [a]
</span><a href="Distribution.Parsec.html#parsecOptCommaList"><span class="hs-identifier hs-var">parsecOptCommaList</span></a></span><span> </span><span class="annot"><span class="annottext">m a
</span><a href="#local-6989586621679681166"><span class="hs-identifier hs-var">p</span></a></span><span>
</span><span id="line-88"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#Sep"><span class="hs-identifier hs-type">Sep</span></a></span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#FSep"><span class="hs-identifier hs-type">FSep</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-89"></span><span>    </span><span id="local-6989586621679681158"><span class="annot"><span class="annottext">prettySep :: Proxy FSep -&gt; [Doc] -&gt; Doc
</span><a href="#local-6989586621679681158"><span class="hs-identifier hs-var hs-var hs-var hs-var">prettySep</span></a></span></span><span> </span><span class="annot"><span class="annottext">Proxy FSep
</span><span class="hs-identifier">_</span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="../../pretty/src/Text.PrettyPrint.HughesPJ.html#fsep"><span class="hs-identifier hs-var">fsep</span></a></span><span>
</span><span id="line-90"></span><span>    </span><span id="local-6989586621679681149"><span class="annot"><span class="annottext">parseSep :: forall (m :: * -&gt; *) a.
CabalParsing m =&gt;
Proxy FSep -&gt; m a -&gt; m [a]
</span><a href="#local-6989586621679681149"><span class="hs-identifier hs-var hs-var hs-var hs-var">parseSep</span></a></span></span><span>   </span><span class="annot"><span class="annottext">Proxy FSep
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621679681148"><span class="annot"><span class="annottext">m a
</span><a href="#local-6989586621679681148"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-91"></span><span>        </span><span id="local-6989586621679681147"><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="#local-6989586621679681147"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">m CabalSpecVersion
forall (m :: * -&gt; *). CabalParsing m =&gt; m CabalSpecVersion
</span><a href="Distribution.Parsec.html#askCabalSpecVersion"><span class="hs-identifier hs-var">askCabalSpecVersion</span></a></span><span>
</span><span id="line-92"></span><span>        </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="#local-6989586621679681147"><span class="hs-identifier hs-var">v</span></a></span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion -&gt; CabalSpecVersion -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&gt;=</span></span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="Distribution.CabalSpecVersion.html#CabalSpecV3_0"><span class="hs-identifier hs-var">CabalSpecV3_0</span></a></span><span> </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">m a -&gt; m [a]
forall (m :: * -&gt; *) a. CabalParsing m =&gt; m a -&gt; m [a]
</span><a href="Distribution.Parsec.html#parsecLeadingOptCommaList"><span class="hs-identifier hs-var">parsecLeadingOptCommaList</span></a></span><span> </span><span class="annot"><span class="annottext">m a
</span><a href="#local-6989586621679681148"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">m a -&gt; m [a]
forall (m :: * -&gt; *) a. CabalParsing m =&gt; m a -&gt; m [a]
</span><a href="Distribution.Parsec.html#parsecOptCommaList"><span class="hs-identifier hs-var">parsecOptCommaList</span></a></span><span> </span><span class="annot"><span class="annottext">m a
</span><a href="#local-6989586621679681148"><span class="hs-identifier hs-var">p</span></a></span><span>
</span><span id="line-93"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#Sep"><span class="hs-identifier hs-type">Sep</span></a></span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#NoCommaFSep"><span class="hs-identifier hs-type">NoCommaFSep</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-94"></span><span>    </span><span id="local-6989586621679681143"><span class="annot"><span class="annottext">prettySep :: Proxy NoCommaFSep -&gt; [Doc] -&gt; Doc
</span><a href="#local-6989586621679681143"><span class="hs-identifier hs-var hs-var hs-var hs-var">prettySep</span></a></span></span><span> </span><span class="annot"><span class="annottext">Proxy NoCommaFSep
</span><span class="hs-identifier">_</span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Doc] -&gt; Doc
</span><a href="../../pretty/src/Text.PrettyPrint.HughesPJ.html#fsep"><span class="hs-identifier hs-var">fsep</span></a></span><span>
</span><span id="line-95"></span><span>    </span><span id="local-6989586621679681130"><span class="annot"><span class="annottext">parseSep :: forall (m :: * -&gt; *) a.
CabalParsing m =&gt;
Proxy NoCommaFSep -&gt; m a -&gt; m [a]
</span><a href="#local-6989586621679681130"><span class="hs-identifier hs-var hs-var hs-var hs-var">parseSep</span></a></span></span><span>  </span><span class="annot"><span class="annottext">Proxy NoCommaFSep
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621679681129"><span class="annot"><span class="annottext">m a
</span><a href="#local-6989586621679681129"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">m a -&gt; m [a]
forall (f :: * -&gt; *) a. Alternative f =&gt; f a -&gt; f [a]
</span><a href="../../base/src/GHC.Base.html#many"><span class="hs-identifier hs-var">many</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">m a
</span><a href="#local-6989586621679681129"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="annot"><span class="annottext">m a -&gt; m () -&gt; m a
forall (f :: * -&gt; *) a b. Applicative f =&gt; f a -&gt; f b -&gt; f a
</span><a href="../../base/src/GHC.Base.html#%3C%2A"><span class="hs-operator hs-var">&lt;*</span></a></span><span> </span><span class="annot"><span class="annottext">m ()
forall (m :: * -&gt; *). CharParsing m =&gt; m ()
</span><a href="Distribution.Compat.CharParsing.html#spaces"><span class="hs-identifier hs-var">P.spaces</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-96"></span><span>
</span><span id="line-97"></span><span class="hs-comment">-- | List separated with optional commas. Displayed with @sep@, arguments of</span><span>
</span><span id="line-98"></span><span class="hs-comment">-- type @a@ are parsed and pretty-printed as @b@.</span><span>
</span><span id="line-99"></span><span class="hs-keyword">newtype</span><span> </span><span id="List"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#List"><span class="hs-identifier hs-var">List</span></a></span></span><span> </span><span id="local-6989586621679681439"><span class="annot"><a href="#local-6989586621679681439"><span class="hs-identifier hs-type">sep</span></a></span></span><span> </span><span id="local-6989586621679681438"><span class="annot"><a href="#local-6989586621679681438"><span class="hs-identifier hs-type">b</span></a></span></span><span> </span><span id="local-6989586621679681437"><span class="annot"><a href="#local-6989586621679681437"><span class="hs-identifier hs-type">a</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="List"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#List"><span class="hs-identifier hs-var">List</span></a></span></span><span> </span><span class="hs-special">{</span><span> </span><span id="_getList"><span class="annot"><span class="annottext">forall sep b a. List sep b a -&gt; [a]
</span><a href="Distribution.FieldGrammar.Newtypes.html#_getList"><span class="hs-identifier hs-var hs-var">_getList</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621679681437"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-100"></span><span>
</span><span id="line-101"></span><span class="hs-comment">-- | 'alaList' and 'alaList'' are simply 'List', with additional phantom</span><span>
</span><span id="line-102"></span><span class="hs-comment">-- arguments to constraint the resulting type</span><span>
</span><span id="line-103"></span><span class="hs-comment">--</span><span>
</span><span id="line-104"></span><span class="hs-comment">-- &gt;&gt;&gt; :t alaList VCat</span><span>
</span><span id="line-105"></span><span class="hs-comment">-- alaList VCat :: [a] -&gt; List VCat (Identity a) a</span><span>
</span><span id="line-106"></span><span class="hs-comment">--</span><span>
</span><span id="line-107"></span><span class="hs-comment">-- &gt;&gt;&gt; :t alaList' FSep Token</span><span>
</span><span id="line-108"></span><span class="hs-comment">-- alaList' FSep Token :: [String] -&gt; List FSep Token String</span><span>
</span><span id="line-109"></span><span class="hs-comment">--</span><span>
</span><span id="line-110"></span><span id="local-6989586621679681432"><span id="local-6989586621679681433"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#alaList"><span class="hs-identifier hs-type">alaList</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679681433"><span class="hs-identifier hs-type">sep</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621679681432"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#List"><span class="hs-identifier hs-type">List</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681433"><span class="hs-identifier hs-type">sep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Functor.Identity.html#Identity"><span class="hs-identifier hs-type">Identity</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681432"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="#local-6989586621679681432"><span class="hs-identifier hs-type">a</span></a></span></span></span><span>
</span><span id="line-111"></span><span id="alaList"><span class="annot"><span class="annottext">alaList :: forall sep a. sep -&gt; [a] -&gt; List sep (Identity a) a
</span><a href="Distribution.FieldGrammar.Newtypes.html#alaList"><span class="hs-identifier hs-var hs-var">alaList</span></a></span></span><span> </span><span class="annot"><span class="annottext">sep
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[a] -&gt; List sep (Identity a) a
forall sep b a. [a] -&gt; List sep b a
</span><a href="Distribution.FieldGrammar.Newtypes.html#List"><span class="hs-identifier hs-var">List</span></a></span><span>
</span><span id="line-112"></span><span>
</span><span id="line-113"></span><span class="hs-comment">-- | More general version of 'alaList'.</span><span>
</span><span id="line-114"></span><span id="local-6989586621679681426"><span id="local-6989586621679681427"><span id="local-6989586621679681428"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#alaList%27"><span class="hs-identifier hs-type">alaList'</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679681428"><span class="hs-identifier hs-type">sep</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679681427"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679681426"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621679681427"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#List"><span class="hs-identifier hs-type">List</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681428"><span class="hs-identifier hs-type">sep</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681426"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681427"><span class="hs-identifier hs-type">a</span></a></span></span></span></span><span>
</span><span id="line-115"></span><span id="alaList%27"><span class="annot"><span class="annottext">alaList' :: forall sep a b. sep -&gt; (a -&gt; b) -&gt; [a] -&gt; List sep b a
</span><a href="Distribution.FieldGrammar.Newtypes.html#alaList%27"><span class="hs-identifier hs-var hs-var">alaList'</span></a></span></span><span> </span><span class="annot"><span class="annottext">sep
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">a -&gt; b
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[a] -&gt; List sep b a
forall sep b a. [a] -&gt; List sep b a
</span><a href="Distribution.FieldGrammar.Newtypes.html#List"><span class="hs-identifier hs-var">List</span></a></span><span>
</span><span id="line-116"></span><span>
</span><span id="line-117"></span><span id="local-6989586621679681418"><span id="local-6989586621679681419"><span id="local-6989586621679681420"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679681120"><span id="local-6989586621679681122"><span class="annot"><a href="Distribution.Compat.Newtype.html#Newtype"><span class="hs-identifier hs-type">Newtype</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621679681420"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#List"><span class="hs-identifier hs-type">List</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681419"><span class="hs-identifier hs-type">sep</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681418"><span class="hs-identifier hs-type">wrapper</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681420"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span></span></span></span></span></span><span>
</span><span id="line-118"></span><span>
</span><span id="line-119"></span><span id="local-6989586621679681409"><span id="local-6989586621679681410"><span id="local-6989586621679681411"><span class="hs-keyword">instance</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Compat.Newtype.html#Newtype"><span class="hs-identifier hs-type">Newtype</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681411"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681410"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#Sep"><span class="hs-identifier hs-type">Sep</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681409"><span class="hs-identifier hs-type">sep</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Parsec.html#Parsec"><span class="hs-identifier hs-type">Parsec</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681410"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="Distribution.Parsec.html#Parsec"><span class="hs-identifier hs-type">Parsec</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#List"><span class="hs-identifier hs-type">List</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681409"><span class="hs-identifier hs-type">sep</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681410"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681411"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-120"></span><span>    </span><span id="local-6989586621679681098"><span class="annot"><span class="annottext">parsec :: forall (m :: * -&gt; *). CabalParsing m =&gt; m (List sep b a)
</span><a href="Distribution.Parsec.html#parsec"><span class="hs-identifier hs-var hs-var hs-var hs-var">parsec</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[a] -&gt; List sep b a
forall o n. Newtype o n =&gt; o -&gt; n
</span><a href="Distribution.Compat.Newtype.html#pack"><span class="hs-identifier hs-var">pack</span></a></span><span> </span><span class="annot"><span class="annottext">([a] -&gt; List sep b a) -&gt; ([b] -&gt; [a]) -&gt; [b] -&gt; List sep b a
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(b -&gt; a) -&gt; [b] -&gt; [a]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">b -&gt; a
forall o n. Newtype o n =&gt; n -&gt; o
</span><a href="Distribution.Compat.Newtype.html#unpack"><span class="hs-identifier hs-var">unpack</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679681410"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679681411"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">([b] -&gt; List sep b a) -&gt; m [b] -&gt; m (List sep b a)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Proxy sep -&gt; m b -&gt; m [b]
forall sep (m :: * -&gt; *) a.
(Sep sep, CabalParsing m) =&gt;
Proxy sep -&gt; m a -&gt; m [a]
</span><a href="Distribution.FieldGrammar.Newtypes.html#parseSep"><span class="hs-identifier hs-var">parseSep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Proxy sep
forall {k} (t :: k). Proxy t
</span><a href="../../base/src/Data.Proxy.html#Proxy"><span class="hs-identifier hs-var">Proxy</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/Data.Proxy.html#Proxy"><span class="hs-identifier hs-type">Proxy</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681409"><span class="hs-identifier hs-type">sep</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">m b
forall a (m :: * -&gt; *). (Parsec a, CabalParsing m) =&gt; m a
</span><a href="Distribution.Parsec.html#parsec"><span class="hs-identifier hs-var">parsec</span></a></span></span></span></span><span>
</span><span id="line-121"></span><span>
</span><span id="line-122"></span><span id="local-6989586621679681397"><span id="local-6989586621679681398"><span id="local-6989586621679681399"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679681090"><span class="hs-special">(</span><span class="annot"><a href="Distribution.Compat.Newtype.html#Newtype"><span class="hs-identifier hs-type">Newtype</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681399"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681398"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#Sep"><span class="hs-identifier hs-type">Sep</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681397"><span class="hs-identifier hs-type">sep</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Pretty.html#Pretty"><span class="hs-identifier hs-type">Pretty</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681398"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="Distribution.Pretty.html#Pretty"><span class="hs-identifier hs-type">Pretty</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#List"><span class="hs-identifier hs-type">List</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681397"><span class="hs-identifier hs-type">sep</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681398"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681399"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-123"></span><span>    </span><span id="local-6989586621679681084"><span class="annot"><span class="annottext">pretty :: List sep b a -&gt; Doc
</span><a href="Distribution.Pretty.html#pretty"><span class="hs-identifier hs-var hs-var hs-var hs-var">pretty</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Proxy sep -&gt; [Doc] -&gt; Doc
forall sep. Sep sep =&gt; Proxy sep -&gt; [Doc] -&gt; Doc
</span><a href="Distribution.FieldGrammar.Newtypes.html#prettySep"><span class="hs-identifier hs-var">prettySep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Proxy sep
forall {k} (t :: k). Proxy t
</span><a href="../../base/src/Data.Proxy.html#Proxy"><span class="hs-identifier hs-var">Proxy</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/Data.Proxy.html#Proxy"><span class="hs-identifier hs-type">Proxy</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681397"><span class="hs-identifier hs-type">sep</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">([Doc] -&gt; Doc) -&gt; (List sep b a -&gt; [Doc]) -&gt; List sep b a -&gt; Doc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; Doc) -&gt; [a] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">b -&gt; Doc
forall a. Pretty a =&gt; a -&gt; Doc
</span><a href="Distribution.Pretty.html#pretty"><span class="hs-identifier hs-var">pretty</span></a></span><span> </span><span class="annot"><span class="annottext">(b -&gt; Doc) -&gt; (a -&gt; b) -&gt; a -&gt; Doc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; b
forall o n. Newtype o n =&gt; o -&gt; n
</span><a href="Distribution.Compat.Newtype.html#pack"><span class="hs-identifier hs-var">pack</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679681399"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679681398"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">([a] -&gt; [Doc]) -&gt; (List sep b a -&gt; [a]) -&gt; List sep b a -&gt; [Doc]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">List sep b a -&gt; [a]
forall o n. Newtype o n =&gt; n -&gt; o
</span><a href="Distribution.Compat.Newtype.html#unpack"><span class="hs-identifier hs-var">unpack</span></a></span></span></span></span><span>
</span><span id="line-124"></span><span>
</span><span id="line-125"></span><span class="hs-comment">--</span><span>
</span><span id="line-126"></span><span class="hs-comment">-- | Like 'List', but for 'Set'.</span><span>
</span><span id="line-127"></span><span class="hs-comment">--</span><span>
</span><span id="line-128"></span><span class="hs-comment">-- @since 3.2.0.0</span><span>
</span><span id="line-129"></span><span class="hs-keyword">newtype</span><span> </span><span id="Set%27"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#Set%27"><span class="hs-identifier hs-var">Set'</span></a></span></span><span> </span><span id="local-6989586621679681396"><span class="annot"><a href="#local-6989586621679681396"><span class="hs-identifier hs-type">sep</span></a></span></span><span> </span><span id="local-6989586621679681395"><span class="annot"><a href="#local-6989586621679681395"><span class="hs-identifier hs-type">b</span></a></span></span><span> </span><span id="local-6989586621679681394"><span class="annot"><a href="#local-6989586621679681394"><span class="hs-identifier hs-type">a</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="Set%27"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#Set%27"><span class="hs-identifier hs-var">Set'</span></a></span></span><span> </span><span class="hs-special">{</span><span> </span><span id="_getSet"><span class="annot"><span class="annottext">forall sep b a. Set' sep b a -&gt; Set a
</span><a href="Distribution.FieldGrammar.Newtypes.html#_getSet"><span class="hs-identifier hs-var hs-var">_getSet</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../containers/src/Data.Set.Internal.html#Set"><span class="hs-identifier hs-type">Set</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681394"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-130"></span><span>
</span><span id="line-131"></span><span class="hs-comment">-- | 'alaSet' and 'alaSet'' are simply 'Set'' constructor, with additional phantom</span><span>
</span><span id="line-132"></span><span class="hs-comment">-- arguments to constraint the resulting type</span><span>
</span><span id="line-133"></span><span class="hs-comment">--</span><span>
</span><span id="line-134"></span><span class="hs-comment">-- &gt;&gt;&gt; :t alaSet VCat</span><span>
</span><span id="line-135"></span><span class="hs-comment">-- alaSet VCat :: Set a -&gt; Set' VCat (Identity a) a</span><span>
</span><span id="line-136"></span><span class="hs-comment">--</span><span>
</span><span id="line-137"></span><span class="hs-comment">-- &gt;&gt;&gt; :t alaSet' FSep Token</span><span>
</span><span id="line-138"></span><span class="hs-comment">-- alaSet' FSep Token :: Set String -&gt; Set' FSep Token String</span><span>
</span><span id="line-139"></span><span class="hs-comment">--</span><span>
</span><span id="line-140"></span><span class="hs-comment">-- &gt;&gt;&gt; unpack' (alaSet' FSep Token) &lt;$&gt; eitherParsec &quot;foo bar foo&quot;</span><span>
</span><span id="line-141"></span><span class="hs-comment">-- Right (fromList [&quot;bar&quot;,&quot;foo&quot;])</span><span>
</span><span id="line-142"></span><span class="hs-comment">--</span><span>
</span><span id="line-143"></span><span class="hs-comment">-- @since 3.2.0.0</span><span>
</span><span id="line-144"></span><span id="local-6989586621679681389"><span id="local-6989586621679681390"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#alaSet"><span class="hs-identifier hs-type">alaSet</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679681390"><span class="hs-identifier hs-type">sep</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../containers/src/Data.Set.Internal.html#Set"><span class="hs-identifier hs-type">Set</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681389"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#Set%27"><span class="hs-identifier hs-type">Set'</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681390"><span class="hs-identifier hs-type">sep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Functor.Identity.html#Identity"><span class="hs-identifier hs-type">Identity</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681389"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="#local-6989586621679681389"><span class="hs-identifier hs-type">a</span></a></span></span></span><span>
</span><span id="line-145"></span><span id="alaSet"><span class="annot"><span class="annottext">alaSet :: forall sep a. sep -&gt; Set a -&gt; Set' sep (Identity a) a
</span><a href="Distribution.FieldGrammar.Newtypes.html#alaSet"><span class="hs-identifier hs-var hs-var">alaSet</span></a></span></span><span> </span><span class="annot"><span class="annottext">sep
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Set a -&gt; Set' sep (Identity a) a
forall sep b a. Set a -&gt; Set' sep b a
</span><a href="Distribution.FieldGrammar.Newtypes.html#Set%27"><span class="hs-identifier hs-var">Set'</span></a></span><span>
</span><span id="line-146"></span><span>
</span><span id="line-147"></span><span class="hs-comment">-- | More general version of 'alaSet'.</span><span>
</span><span id="line-148"></span><span class="hs-comment">--</span><span>
</span><span id="line-149"></span><span class="hs-comment">-- @since 3.2.0.0</span><span>
</span><span id="line-150"></span><span id="local-6989586621679681384"><span id="local-6989586621679681385"><span id="local-6989586621679681386"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#alaSet%27"><span class="hs-identifier hs-type">alaSet'</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679681386"><span class="hs-identifier hs-type">sep</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679681385"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679681384"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../containers/src/Data.Set.Internal.html#Set"><span class="hs-identifier hs-type">Set</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681385"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#Set%27"><span class="hs-identifier hs-type">Set'</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681386"><span class="hs-identifier hs-type">sep</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681384"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681385"><span class="hs-identifier hs-type">a</span></a></span></span></span></span><span>
</span><span id="line-151"></span><span id="alaSet%27"><span class="annot"><span class="annottext">alaSet' :: forall sep a b. sep -&gt; (a -&gt; b) -&gt; Set a -&gt; Set' sep b a
</span><a href="Distribution.FieldGrammar.Newtypes.html#alaSet%27"><span class="hs-identifier hs-var hs-var">alaSet'</span></a></span></span><span> </span><span class="annot"><span class="annottext">sep
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">a -&gt; b
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Set a -&gt; Set' sep b a
forall sep b a. Set a -&gt; Set' sep b a
</span><a href="Distribution.FieldGrammar.Newtypes.html#Set%27"><span class="hs-identifier hs-var">Set'</span></a></span><span>
</span><span id="line-152"></span><span>
</span><span id="line-153"></span><span id="local-6989586621679681378"><span id="local-6989586621679681379"><span id="local-6989586621679681380"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679681077"><span id="local-6989586621679681079"><span class="annot"><a href="Distribution.Compat.Newtype.html#Newtype"><span class="hs-identifier hs-type">Newtype</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../containers/src/Data.Set.Internal.html#Set"><span class="hs-identifier hs-type">Set</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681380"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#Set%27"><span class="hs-identifier hs-type">Set'</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681379"><span class="hs-identifier hs-type">sep</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681378"><span class="hs-identifier hs-type">wrapper</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681380"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span></span></span></span></span></span><span>
</span><span id="line-154"></span><span>
</span><span id="line-155"></span><span id="local-6989586621679681372"><span id="local-6989586621679681373"><span id="local-6989586621679681374"><span class="hs-keyword">instance</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Compat.Newtype.html#Newtype"><span class="hs-identifier hs-type">Newtype</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681374"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681373"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Ord</span></span><span> </span><span class="annot"><a href="#local-6989586621679681374"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#Sep"><span class="hs-identifier hs-type">Sep</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681372"><span class="hs-identifier hs-type">sep</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Parsec.html#Parsec"><span class="hs-identifier hs-type">Parsec</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681373"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="Distribution.Parsec.html#Parsec"><span class="hs-identifier hs-type">Parsec</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#Set%27"><span class="hs-identifier hs-type">Set'</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681372"><span class="hs-identifier hs-type">sep</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681373"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681374"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-156"></span><span>    </span><span id="local-6989586621679681056"><span class="annot"><span class="annottext">parsec :: forall (m :: * -&gt; *). CabalParsing m =&gt; m (Set' sep b a)
</span><a href="#local-6989586621679681056"><span class="hs-identifier hs-var hs-var hs-var hs-var">parsec</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Set a -&gt; Set' sep b a
forall o n. Newtype o n =&gt; o -&gt; n
</span><a href="Distribution.Compat.Newtype.html#pack"><span class="hs-identifier hs-var">pack</span></a></span><span> </span><span class="annot"><span class="annottext">(Set a -&gt; Set' sep b a) -&gt; ([b] -&gt; Set a) -&gt; [b] -&gt; Set' sep b a
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">[a] -&gt; Set a
forall a. Ord a =&gt; [a] -&gt; Set a
</span><a href="../../containers/src/Data.Set.Internal.html#fromList"><span class="hs-identifier hs-var">Set.fromList</span></a></span><span> </span><span class="annot"><span class="annottext">([a] -&gt; Set a) -&gt; ([b] -&gt; [a]) -&gt; [b] -&gt; Set a
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(b -&gt; a) -&gt; [b] -&gt; [a]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">b -&gt; a
forall o n. Newtype o n =&gt; n -&gt; o
</span><a href="Distribution.Compat.Newtype.html#unpack"><span class="hs-identifier hs-var">unpack</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679681373"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679681374"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">([b] -&gt; Set' sep b a) -&gt; m [b] -&gt; m (Set' sep b a)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Proxy sep -&gt; m b -&gt; m [b]
forall sep (m :: * -&gt; *) a.
(Sep sep, CabalParsing m) =&gt;
Proxy sep -&gt; m a -&gt; m [a]
</span><a href="Distribution.FieldGrammar.Newtypes.html#parseSep"><span class="hs-identifier hs-var">parseSep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Proxy sep
forall {k} (t :: k). Proxy t
</span><a href="../../base/src/Data.Proxy.html#Proxy"><span class="hs-identifier hs-var">Proxy</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/Data.Proxy.html#Proxy"><span class="hs-identifier hs-type">Proxy</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681372"><span class="hs-identifier hs-type">sep</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">m b
forall a (m :: * -&gt; *). (Parsec a, CabalParsing m) =&gt; m a
</span><a href="Distribution.Parsec.html#parsec"><span class="hs-identifier hs-var">parsec</span></a></span></span></span></span><span>
</span><span id="line-157"></span><span>
</span><span id="line-158"></span><span id="local-6989586621679681367"><span id="local-6989586621679681368"><span id="local-6989586621679681369"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679681052"><span class="hs-special">(</span><span class="annot"><a href="Distribution.Compat.Newtype.html#Newtype"><span class="hs-identifier hs-type">Newtype</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681369"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681368"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#Sep"><span class="hs-identifier hs-type">Sep</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681367"><span class="hs-identifier hs-type">sep</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Pretty.html#Pretty"><span class="hs-identifier hs-type">Pretty</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681368"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="Distribution.Pretty.html#Pretty"><span class="hs-identifier hs-type">Pretty</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#Set%27"><span class="hs-identifier hs-type">Set'</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681367"><span class="hs-identifier hs-type">sep</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681368"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681369"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-159"></span><span>    </span><span id="local-6989586621679681047"><span class="annot"><span class="annottext">pretty :: Set' sep b a -&gt; Doc
</span><a href="#local-6989586621679681047"><span class="hs-identifier hs-var hs-var hs-var hs-var">pretty</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Proxy sep -&gt; [Doc] -&gt; Doc
forall sep. Sep sep =&gt; Proxy sep -&gt; [Doc] -&gt; Doc
</span><a href="Distribution.FieldGrammar.Newtypes.html#prettySep"><span class="hs-identifier hs-var">prettySep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Proxy sep
forall {k} (t :: k). Proxy t
</span><a href="../../base/src/Data.Proxy.html#Proxy"><span class="hs-identifier hs-var">Proxy</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/Data.Proxy.html#Proxy"><span class="hs-identifier hs-type">Proxy</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681367"><span class="hs-identifier hs-type">sep</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">([Doc] -&gt; Doc) -&gt; (Set' sep b a -&gt; [Doc]) -&gt; Set' sep b a -&gt; Doc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; Doc) -&gt; [a] -&gt; [Doc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">b -&gt; Doc
forall a. Pretty a =&gt; a -&gt; Doc
</span><a href="Distribution.Pretty.html#pretty"><span class="hs-identifier hs-var">pretty</span></a></span><span> </span><span class="annot"><span class="annottext">(b -&gt; Doc) -&gt; (a -&gt; b) -&gt; a -&gt; Doc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; b
forall o n. Newtype o n =&gt; o -&gt; n
</span><a href="Distribution.Compat.Newtype.html#pack"><span class="hs-identifier hs-var">pack</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679681369"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679681368"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">([a] -&gt; [Doc]) -&gt; (Set' sep b a -&gt; [a]) -&gt; Set' sep b a -&gt; [Doc]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Set a -&gt; [a]
forall a. Set a -&gt; [a]
</span><a href="../../containers/src/Data.Set.Internal.html#toList"><span class="hs-identifier hs-var">Set.toList</span></a></span><span> </span><span class="annot"><span class="annottext">(Set a -&gt; [a]) -&gt; (Set' sep b a -&gt; Set a) -&gt; Set' sep b a -&gt; [a]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Set' sep b a -&gt; Set a
forall o n. Newtype o n =&gt; n -&gt; o
</span><a href="Distribution.Compat.Newtype.html#unpack"><span class="hs-identifier hs-var">unpack</span></a></span></span></span></span><span>
</span><span id="line-160"></span><span>
</span><span id="line-161"></span><span class="hs-comment">-------------------------------------------------------------------------------</span><span>
</span><span id="line-162"></span><span class="hs-comment">-- Identifiers</span><span>
</span><span id="line-163"></span><span class="hs-comment">-------------------------------------------------------------------------------</span><span>
</span><span id="line-164"></span><span>
</span><span id="line-165"></span><span class="hs-comment">-- | Haskell string or @[^ ,]+@</span><span>
</span><span id="line-166"></span><span class="hs-keyword">newtype</span><span> </span><span id="Token"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#Token"><span class="hs-identifier hs-var">Token</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="Token"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#Token"><span class="hs-identifier hs-var">Token</span></a></span></span><span> </span><span class="hs-special">{</span><span> </span><span id="getToken"><span class="annot"><span class="annottext">Token -&gt; String
</span><a href="Distribution.FieldGrammar.Newtypes.html#getToken"><span class="hs-identifier hs-var hs-var">getToken</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-167"></span><span>
</span><span id="line-168"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679681040"><span id="local-6989586621679681042"><span class="annot"><a href="Distribution.Compat.Newtype.html#Newtype"><span class="hs-identifier hs-type">Newtype</span></a></span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#Token"><span class="hs-identifier hs-type">Token</span></a></span></span></span><span>
</span><span id="line-169"></span><span>
</span><span id="line-170"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="Distribution.Parsec.html#Parsec"><span class="hs-identifier hs-type">Parsec</span></a></span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#Token"><span class="hs-identifier hs-type">Token</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-171"></span><span>    </span><span id="local-6989586621679681028"><span class="annot"><span class="annottext">parsec :: forall (m :: * -&gt; *). CabalParsing m =&gt; m Token
</span><a href="#local-6989586621679681028"><span class="hs-identifier hs-var hs-var hs-var hs-var">parsec</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Token
forall o n. Newtype o n =&gt; o -&gt; n
</span><a href="Distribution.Compat.Newtype.html#pack"><span class="hs-identifier hs-var">pack</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; Token) -&gt; m String -&gt; m Token
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">m String
forall (m :: * -&gt; *). CabalParsing m =&gt; m String
</span><a href="Distribution.Parsec.html#parsecToken"><span class="hs-identifier hs-var">parsecToken</span></a></span><span>
</span><span id="line-172"></span><span>
</span><span id="line-173"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679681024"><span class="annot"><a href="Distribution.Pretty.html#Pretty"><span class="hs-identifier hs-type">Pretty</span></a></span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#Token"><span class="hs-identifier hs-type">Token</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-174"></span><span>    </span><span id="local-6989586621679681022"><span class="annot"><span class="annottext">pretty :: Token -&gt; Doc
</span><a href="#local-6989586621679681022"><span class="hs-identifier hs-var hs-var hs-var hs-var">pretty</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Distribution.Pretty.html#showToken"><span class="hs-identifier hs-var">showToken</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; Doc) -&gt; (Token -&gt; String) -&gt; Token -&gt; Doc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Token -&gt; String
forall o n. Newtype o n =&gt; n -&gt; o
</span><a href="Distribution.Compat.Newtype.html#unpack"><span class="hs-identifier hs-var">unpack</span></a></span><span>
</span><span id="line-175"></span><span>
</span><span id="line-176"></span><span class="hs-comment">-- | Haskell string or @[^ ]+@</span><span>
</span><span id="line-177"></span><span class="hs-keyword">newtype</span><span> </span><span id="Token%27"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#Token%27"><span class="hs-identifier hs-var">Token'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="Token%27"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#Token%27"><span class="hs-identifier hs-var">Token'</span></a></span></span><span> </span><span class="hs-special">{</span><span> </span><span id="getToken%27"><span class="annot"><span class="annottext">Token' -&gt; String
</span><a href="Distribution.FieldGrammar.Newtypes.html#getToken%27"><span class="hs-identifier hs-var hs-var">getToken'</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-178"></span><span>
</span><span id="line-179"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679681015"><span id="local-6989586621679681017"><span class="annot"><a href="Distribution.Compat.Newtype.html#Newtype"><span class="hs-identifier hs-type">Newtype</span></a></span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#Token%27"><span class="hs-identifier hs-type">Token'</span></a></span></span></span><span>
</span><span id="line-180"></span><span>
</span><span id="line-181"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="Distribution.Parsec.html#Parsec"><span class="hs-identifier hs-type">Parsec</span></a></span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#Token%27"><span class="hs-identifier hs-type">Token'</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-182"></span><span>    </span><span id="local-6989586621679681003"><span class="annot"><span class="annottext">parsec :: forall (m :: * -&gt; *). CabalParsing m =&gt; m Token'
</span><a href="#local-6989586621679681003"><span class="hs-identifier hs-var hs-var hs-var hs-var">parsec</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Token'
forall o n. Newtype o n =&gt; o -&gt; n
</span><a href="Distribution.Compat.Newtype.html#pack"><span class="hs-identifier hs-var">pack</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; Token') -&gt; m String -&gt; m Token'
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">m String
forall (m :: * -&gt; *). CabalParsing m =&gt; m String
</span><a href="Distribution.Parsec.html#parsecToken%27"><span class="hs-identifier hs-var">parsecToken'</span></a></span><span>
</span><span id="line-183"></span><span>
</span><span id="line-184"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679680999"><span class="annot"><a href="Distribution.Pretty.html#Pretty"><span class="hs-identifier hs-type">Pretty</span></a></span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#Token%27"><span class="hs-identifier hs-type">Token'</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-185"></span><span>    </span><span id="local-6989586621679680997"><span class="annot"><span class="annottext">pretty :: Token' -&gt; Doc
</span><a href="#local-6989586621679680997"><span class="hs-identifier hs-var hs-var hs-var hs-var">pretty</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Distribution.Pretty.html#showToken"><span class="hs-identifier hs-var">showToken</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; Doc) -&gt; (Token' -&gt; String) -&gt; Token' -&gt; Doc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Token' -&gt; String
forall o n. Newtype o n =&gt; n -&gt; o
</span><a href="Distribution.Compat.Newtype.html#unpack"><span class="hs-identifier hs-var">unpack</span></a></span><span>
</span><span id="line-186"></span><span>
</span><span id="line-187"></span><span class="hs-comment">-- | Either @&quot;quoted&quot;@ or @un-quoted@.</span><span>
</span><span id="line-188"></span><span class="hs-keyword">newtype</span><span> </span><span id="MQuoted"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#MQuoted"><span class="hs-identifier hs-var">MQuoted</span></a></span></span><span> </span><span id="local-6989586621679681362"><span class="annot"><a href="#local-6989586621679681362"><span class="hs-identifier hs-type">a</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="MQuoted"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#MQuoted"><span class="hs-identifier hs-var">MQuoted</span></a></span></span><span> </span><span class="hs-special">{</span><span> </span><span id="getMQuoted"><span class="annot"><span class="annottext">forall a. MQuoted a -&gt; a
</span><a href="Distribution.FieldGrammar.Newtypes.html#getMQuoted"><span class="hs-identifier hs-var hs-var">getMQuoted</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679681362"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-189"></span><span>
</span><span id="line-190"></span><span id="local-6989586621679681360"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679680991"><span id="local-6989586621679680993"><span class="annot"><a href="Distribution.Compat.Newtype.html#Newtype"><span class="hs-identifier hs-type">Newtype</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681360"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#MQuoted"><span class="hs-identifier hs-type">MQuoted</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681360"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span></span></span></span><span>
</span><span id="line-191"></span><span>
</span><span id="line-192"></span><span id="local-6989586621679681358"><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="Distribution.Parsec.html#Parsec"><span class="hs-identifier hs-type">Parsec</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681358"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="Distribution.Parsec.html#Parsec"><span class="hs-identifier hs-type">Parsec</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#MQuoted"><span class="hs-identifier hs-type">MQuoted</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681358"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-193"></span><span>    </span><span id="local-6989586621679680976"><span class="annot"><span class="annottext">parsec :: forall (m :: * -&gt; *). CabalParsing m =&gt; m (MQuoted a)
</span><a href="#local-6989586621679680976"><span class="hs-identifier hs-var hs-var hs-var hs-var">parsec</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">a -&gt; MQuoted a
forall o n. Newtype o n =&gt; o -&gt; n
</span><a href="Distribution.Compat.Newtype.html#pack"><span class="hs-identifier hs-var">pack</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; MQuoted a) -&gt; m a -&gt; m (MQuoted a)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">m a -&gt; m a
forall (m :: * -&gt; *) a. CabalParsing m =&gt; m a -&gt; m a
</span><a href="Distribution.Parsec.html#parsecMaybeQuoted"><span class="hs-identifier hs-var">parsecMaybeQuoted</span></a></span><span> </span><span class="annot"><span class="annottext">m a
forall a (m :: * -&gt; *). (Parsec a, CabalParsing m) =&gt; m a
</span><a href="Distribution.Parsec.html#parsec"><span class="hs-identifier hs-var">parsec</span></a></span></span><span>
</span><span id="line-194"></span><span>
</span><span id="line-195"></span><span id="local-6989586621679681354"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679680972"><span class="annot"><a href="Distribution.Pretty.html#Pretty"><span class="hs-identifier hs-type">Pretty</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681354"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="Distribution.Pretty.html#Pretty"><span class="hs-identifier hs-type">Pretty</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#MQuoted"><span class="hs-identifier hs-type">MQuoted</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681354"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-196"></span><span>    </span><span id="local-6989586621679680969"><span class="annot"><span class="annottext">pretty :: MQuoted a -&gt; Doc
</span><a href="#local-6989586621679680969"><span class="hs-identifier hs-var hs-var hs-var hs-var">pretty</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">a -&gt; Doc
forall a. Pretty a =&gt; a -&gt; Doc
</span><a href="Distribution.Pretty.html#pretty"><span class="hs-identifier hs-var">pretty</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; Doc) -&gt; (MQuoted a -&gt; a) -&gt; MQuoted a -&gt; Doc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">MQuoted a -&gt; a
forall o n. Newtype o n =&gt; n -&gt; o
</span><a href="Distribution.Compat.Newtype.html#unpack"><span class="hs-identifier hs-var">unpack</span></a></span></span><span>
</span><span id="line-197"></span><span>
</span><span id="line-198"></span><span class="hs-comment">-- | Filepath are parsed as 'Token'.</span><span>
</span><span id="line-199"></span><span class="hs-keyword">newtype</span><span> </span><span id="FilePathNT"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#FilePathNT"><span class="hs-identifier hs-var">FilePathNT</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="FilePathNT"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#FilePathNT"><span class="hs-identifier hs-var">FilePathNT</span></a></span></span><span> </span><span class="hs-special">{</span><span> </span><span id="getFilePathNT"><span class="annot"><span class="annottext">FilePathNT -&gt; String
</span><a href="Distribution.FieldGrammar.Newtypes.html#getFilePathNT"><span class="hs-identifier hs-var hs-var">getFilePathNT</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-200"></span><span>
</span><span id="line-201"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679680963"><span id="local-6989586621679680965"><span class="annot"><a href="Distribution.Compat.Newtype.html#Newtype"><span class="hs-identifier hs-type">Newtype</span></a></span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#FilePathNT"><span class="hs-identifier hs-type">FilePathNT</span></a></span></span></span><span>
</span><span id="line-202"></span><span>
</span><span id="line-203"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="Distribution.Parsec.html#Parsec"><span class="hs-identifier hs-type">Parsec</span></a></span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#FilePathNT"><span class="hs-identifier hs-type">FilePathNT</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-204"></span><span>    </span><span id="local-6989586621679680951"><span class="annot"><span class="annottext">parsec :: forall (m :: * -&gt; *). CabalParsing m =&gt; m FilePathNT
</span><a href="#local-6989586621679680951"><span class="hs-identifier hs-var hs-var hs-var hs-var">parsec</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; FilePathNT
forall o n. Newtype o n =&gt; o -&gt; n
</span><a href="Distribution.Compat.Newtype.html#pack"><span class="hs-identifier hs-var">pack</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; FilePathNT) -&gt; m String -&gt; m FilePathNT
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">m String
forall (m :: * -&gt; *). CabalParsing m =&gt; m String
</span><a href="Distribution.Parsec.html#parsecToken"><span class="hs-identifier hs-var">parsecToken</span></a></span><span>
</span><span id="line-205"></span><span>
</span><span id="line-206"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679680948"><span class="annot"><a href="Distribution.Pretty.html#Pretty"><span class="hs-identifier hs-type">Pretty</span></a></span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#FilePathNT"><span class="hs-identifier hs-type">FilePathNT</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-207"></span><span>    </span><span id="local-6989586621679680946"><span class="annot"><span class="annottext">pretty :: FilePathNT -&gt; Doc
</span><a href="#local-6989586621679680946"><span class="hs-identifier hs-var hs-var hs-var hs-var">pretty</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="Distribution.Pretty.html#showFilePath"><span class="hs-identifier hs-var">showFilePath</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; Doc) -&gt; (FilePathNT -&gt; String) -&gt; FilePathNT -&gt; Doc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">FilePathNT -&gt; String
forall o n. Newtype o n =&gt; n -&gt; o
</span><a href="Distribution.Compat.Newtype.html#unpack"><span class="hs-identifier hs-var">unpack</span></a></span><span>
</span><span id="line-208"></span><span>
</span><span id="line-209"></span><span class="hs-comment">-------------------------------------------------------------------------------</span><span>
</span><span id="line-210"></span><span class="hs-comment">-- SpecVersion</span><span>
</span><span id="line-211"></span><span class="hs-comment">-------------------------------------------------------------------------------</span><span>
</span><span id="line-212"></span><span>
</span><span id="line-213"></span><span class="hs-comment">-- | Version range or just version, i.e. @cabal-version@ field.</span><span>
</span><span id="line-214"></span><span class="hs-comment">--</span><span>
</span><span id="line-215"></span><span class="hs-comment">-- There are few things to consider:</span><span>
</span><span id="line-216"></span><span class="hs-comment">--</span><span>
</span><span id="line-217"></span><span class="hs-comment">-- * Starting with 2.2 the cabal-version field should be the first field in the</span><span>
</span><span id="line-218"></span><span class="hs-comment">--   file and only exact version is accepted. Therefore if we get e.g.</span><span>
</span><span id="line-219"></span><span class="hs-comment">--   @&gt;= 2.2@, we fail.</span><span>
</span><span id="line-220"></span><span class="hs-comment">--   See &lt;https://github.com/haskell/cabal/issues/4899&gt;</span><span>
</span><span id="line-221"></span><span class="hs-comment">--</span><span>
</span><span id="line-222"></span><span class="hs-comment">-- We have this newtype, as writing Parsec and Pretty instances</span><span>
</span><span id="line-223"></span><span class="hs-comment">-- for CabalSpecVersion would cause cycle in modules:</span><span>
</span><span id="line-224"></span><span class="hs-comment">--     Version -&gt; CabalSpecVersion -&gt; Parsec -&gt; ...</span><span>
</span><span id="line-225"></span><span class="hs-comment">--</span><span>
</span><span id="line-226"></span><span class="hs-keyword">newtype</span><span> </span><span id="SpecVersion"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#SpecVersion"><span class="hs-identifier hs-var">SpecVersion</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="SpecVersion"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#SpecVersion"><span class="hs-identifier hs-var">SpecVersion</span></a></span></span><span> </span><span class="hs-special">{</span><span> </span><span id="getSpecVersion"><span class="annot"><span class="annottext">SpecVersion -&gt; CabalSpecVersion
</span><a href="Distribution.FieldGrammar.Newtypes.html#getSpecVersion"><span class="hs-identifier hs-var hs-var">getSpecVersion</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.CabalSpecVersion.html#CabalSpecVersion"><span class="hs-identifier hs-type">CabalSpecVersion</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-227"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621679680936"><span id="local-6989586621679680941"><span class="annot"><span class="annottext">SpecVersion -&gt; SpecVersion -&gt; Bool
(SpecVersion -&gt; SpecVersion -&gt; Bool)
-&gt; (SpecVersion -&gt; SpecVersion -&gt; Bool) -&gt; Eq SpecVersion
forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
/= :: SpecVersion -&gt; SpecVersion -&gt; Bool
$c/= :: SpecVersion -&gt; SpecVersion -&gt; Bool
== :: SpecVersion -&gt; SpecVersion -&gt; Bool
$c== :: SpecVersion -&gt; SpecVersion -&gt; Bool
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679680922"><span id="local-6989586621679680924"><span id="local-6989586621679680930"><span class="annot"><span class="annottext">Int -&gt; SpecVersion -&gt; ShowS
[SpecVersion] -&gt; ShowS
SpecVersion -&gt; String
(Int -&gt; SpecVersion -&gt; ShowS)
-&gt; (SpecVersion -&gt; String)
-&gt; ([SpecVersion] -&gt; ShowS)
-&gt; Show SpecVersion
forall a.
(Int -&gt; a -&gt; ShowS) -&gt; (a -&gt; String) -&gt; ([a] -&gt; ShowS) -&gt; Show a
showList :: [SpecVersion] -&gt; ShowS
$cshowList :: [SpecVersion] -&gt; ShowS
show :: SpecVersion -&gt; String
$cshow :: SpecVersion -&gt; String
showsPrec :: Int -&gt; SpecVersion -&gt; ShowS
$cshowsPrec :: Int -&gt; SpecVersion -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#Show"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Show</span></a></span></span></span></span><span class="hs-special">)</span><span> </span><span class="hs-comment">-- instances needed for tests</span><span>
</span><span id="line-228"></span><span>
</span><span id="line-229"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679680917"><span id="local-6989586621679680919"><span class="annot"><a href="Distribution.Compat.Newtype.html#Newtype"><span class="hs-identifier hs-type">Newtype</span></a></span><span> </span><span class="annot"><a href="Distribution.CabalSpecVersion.html#CabalSpecVersion"><span class="hs-identifier hs-type">CabalSpecVersion</span></a></span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#SpecVersion"><span class="hs-identifier hs-type">SpecVersion</span></a></span></span></span><span>
</span><span id="line-230"></span><span>
</span><span id="line-231"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="Distribution.Parsec.html#Parsec"><span class="hs-identifier hs-type">Parsec</span></a></span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#SpecVersion"><span class="hs-identifier hs-type">SpecVersion</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-232"></span><span>    </span><span id="local-6989586621679680866"><span class="annot"><span class="annottext">parsec :: forall (m :: * -&gt; *). CabalParsing m =&gt; m SpecVersion
</span><a href="#local-6989586621679680866"><span class="hs-identifier hs-var hs-var hs-var hs-var">parsec</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-233"></span><span>        </span><span id="local-6989586621679680865"><span class="annot"><span class="annottext">Either Version VersionRange
</span><a href="#local-6989586621679680865"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">m (Either Version VersionRange)
</span><a href="#local-6989586621679680864"><span class="hs-identifier hs-var">parsecSpecVersion</span></a></span><span>
</span><span id="line-234"></span><span>        </span><span class="hs-keyword">let</span><span> </span><span class="annot"><a href="#local-6989586621679680863"><span class="hs-identifier hs-type">ver</span></a></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.Version.html#Version"><span class="hs-identifier hs-type">Version</span></a></span><span>
</span><span id="line-235"></span><span>            </span><span id="local-6989586621679680863"><span class="annot"><span class="annottext">ver :: Version
</span><a href="#local-6989586621679680863"><span class="hs-identifier hs-var hs-var">ver</span></a></span></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Version -&gt; Version)
-&gt; (VersionRange -&gt; Version)
-&gt; Either Version VersionRange
-&gt; Version
forall a c b. (a -&gt; c) -&gt; (b -&gt; c) -&gt; Either a b -&gt; c
</span><a href="../../base/src/Data.Either.html#either"><span class="hs-identifier hs-var">either</span></a></span><span> </span><span class="annot"><span class="annottext">Version -&gt; Version
forall a. a -&gt; a
</span><a href="../../base/src/GHC.Base.html#id"><span class="hs-identifier hs-var">id</span></a></span><span> </span><span class="annot"><span class="annottext">VersionRange -&gt; Version
</span><a href="#local-6989586621679680860"><span class="hs-identifier hs-var">specVersionFromRange</span></a></span><span> </span><span class="annot"><span class="annottext">Either Version VersionRange
</span><a href="#local-6989586621679680865"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-236"></span><span>
</span><span id="line-237"></span><span>            </span><span class="annot"><a href="#local-6989586621679680859"><span class="hs-identifier hs-type">digits</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span class="hs-special">]</span><span>
</span><span id="line-238"></span><span>            </span><span id="local-6989586621679680859"><span class="annot"><span class="annottext">digits :: [Int]
</span><a href="#local-6989586621679680859"><span class="hs-identifier hs-var hs-var">digits</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Version -&gt; [Int]
</span><a href="Distribution.Types.Version.html#versionNumbers"><span class="hs-identifier hs-var">versionNumbers</span></a></span><span> </span><span class="annot"><span class="annottext">Version
</span><a href="#local-6989586621679680863"><span class="hs-identifier hs-var">ver</span></a></span><span>
</span><span id="line-239"></span><span>
</span><span id="line-240"></span><span>        </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">[Int] -&gt; Maybe CabalSpecVersion
</span><a href="Distribution.CabalSpecVersion.html#cabalSpecFromVersionDigits"><span class="hs-identifier hs-var">cabalSpecFromVersionDigits</span></a></span><span> </span><span class="annot"><span class="annottext">[Int]
</span><a href="#local-6989586621679680859"><span class="hs-identifier hs-var">digits</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-241"></span><span>            </span><span class="annot"><span class="annottext">Maybe CabalSpecVersion
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; m SpecVersion
forall (m :: * -&gt; *) a. MonadFail m =&gt; String -&gt; m a
</span><a href="../../base/src/Control.Monad.Fail.html#fail"><span class="hs-identifier hs-var">fail</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; m SpecVersion) -&gt; String -&gt; m SpecVersion
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Unknown cabal spec version specified: &quot;</span></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">Version -&gt; String
forall a. Pretty a =&gt; a -&gt; String
</span><a href="Distribution.Pretty.html#prettyShow"><span class="hs-identifier hs-var">prettyShow</span></a></span><span> </span><span class="annot"><span class="annottext">Version
</span><a href="#local-6989586621679680863"><span class="hs-identifier hs-var">ver</span></a></span><span>
</span><span id="line-242"></span><span>            </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679680856"><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="#local-6989586621679680856"><span class="hs-identifier hs-var">csv</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-243"></span><span>                </span><span class="hs-comment">-- Check some warnings:</span><span>
</span><span id="line-244"></span><span>                </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Either Version VersionRange
</span><a href="#local-6989586621679680865"><span class="hs-identifier hs-var">e</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-245"></span><span>                    </span><span class="hs-comment">-- example:   cabal-version: 1.10</span><span>
</span><span id="line-246"></span><span>                    </span><span class="hs-comment">-- should be  cabal-version: &gt;=1.10</span><span>
</span><span id="line-247"></span><span>                    </span><span class="annot"><a href="../../base/src/Data.Either.html#Left"><span class="hs-identifier hs-type">Left</span></a></span><span> </span><span id="local-6989586621679680855"><span class="annot"><span class="annottext">Version
</span><a href="#local-6989586621679680855"><span class="hs-identifier hs-var">_v</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="#local-6989586621679680856"><span class="hs-identifier hs-var">csv</span></a></span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion -&gt; CabalSpecVersion -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&lt;</span></span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="Distribution.CabalSpecVersion.html#CabalSpecV1_12"><span class="hs-identifier hs-var">CabalSpecV1_12</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PWarnType -&gt; String -&gt; m ()
forall (m :: * -&gt; *). CabalParsing m =&gt; PWarnType -&gt; String -&gt; m ()
</span><a href="Distribution.Parsec.html#parsecWarning"><span class="hs-identifier hs-var">parsecWarning</span></a></span><span> </span><span class="annot"><span class="annottext">PWarnType
</span><a href="Distribution.Parsec.Warning.html#PWTSpecVersion"><span class="hs-identifier hs-var">PWTSpecVersion</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; m ()) -&gt; String -&gt; m ()
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">[String] -&gt; String
forall (t :: * -&gt; *) a. Foldable t =&gt; t [a] -&gt; [a]
</span><a href="../../base/src/Data.Foldable.html#concat"><span class="hs-identifier hs-var">concat</span></a></span><span>
</span><span id="line-248"></span><span>                        </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;With 1.10 or earlier, the 'cabal-version' field must use &quot;</span></span><span>
</span><span id="line-249"></span><span>                        </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;range syntax rather than a simple version number. Use &quot;</span></span><span>
</span><span id="line-250"></span><span>                        </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;'cabal-version: &gt;= &quot;</span></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">Version -&gt; String
forall a. Pretty a =&gt; a -&gt; String
</span><a href="Distribution.Pretty.html#prettyShow"><span class="hs-identifier hs-var">prettyShow</span></a></span><span> </span><span class="annot"><span class="annottext">Version
</span><a href="#local-6989586621679680863"><span class="hs-identifier hs-var">ver</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;'.&quot;</span></span><span>
</span><span id="line-251"></span><span>                        </span><span class="hs-special">]</span><span>
</span><span id="line-252"></span><span>
</span><span id="line-253"></span><span>                    </span><span class="hs-comment">-- example:   cabal-version: &gt;=1.12</span><span>
</span><span id="line-254"></span><span>                    </span><span class="hs-comment">-- should be  cabal-version: 1.12</span><span>
</span><span id="line-255"></span><span>                    </span><span class="annot"><a href="../../base/src/Data.Either.html#Right"><span class="hs-identifier hs-type">Right</span></a></span><span> </span><span id="local-6989586621679680849"><span class="annot"><span class="annottext">VersionRange
</span><a href="#local-6989586621679680849"><span class="hs-identifier hs-var">_vr</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="#local-6989586621679680856"><span class="hs-identifier hs-var">csv</span></a></span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion -&gt; CabalSpecVersion -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&gt;=</span></span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="Distribution.CabalSpecVersion.html#CabalSpecV1_12"><span class="hs-identifier hs-var">CabalSpecV1_12</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PWarnType -&gt; String -&gt; m ()
forall (m :: * -&gt; *). CabalParsing m =&gt; PWarnType -&gt; String -&gt; m ()
</span><a href="Distribution.Parsec.html#parsecWarning"><span class="hs-identifier hs-var">parsecWarning</span></a></span><span> </span><span class="annot"><span class="annottext">PWarnType
</span><a href="Distribution.Parsec.Warning.html#PWTSpecVersion"><span class="hs-identifier hs-var">PWTSpecVersion</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; m ()) -&gt; String -&gt; m ()
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">[String] -&gt; String
forall (t :: * -&gt; *) a. Foldable t =&gt; t [a] -&gt; [a]
</span><a href="../../base/src/Data.Foldable.html#concat"><span class="hs-identifier hs-var">concat</span></a></span><span>
</span><span id="line-256"></span><span>                        </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Packages with 'cabal-version: 1.12' or later should specify a &quot;</span></span><span>
</span><span id="line-257"></span><span>                        </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;specific version of the Cabal spec of the form &quot;</span></span><span>
</span><span id="line-258"></span><span>                        </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;'cabal-version: x.y'. &quot;</span></span><span>
</span><span id="line-259"></span><span>                        </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Use 'cabal-version: &quot;</span></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">Version -&gt; String
forall a. Pretty a =&gt; a -&gt; String
</span><a href="Distribution.Pretty.html#prettyShow"><span class="hs-identifier hs-var">prettyShow</span></a></span><span> </span><span class="annot"><span class="annottext">Version
</span><a href="#local-6989586621679680863"><span class="hs-identifier hs-var">ver</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;'.&quot;</span></span><span>
</span><span id="line-260"></span><span>                        </span><span class="hs-special">]</span><span>
</span><span id="line-261"></span><span>
</span><span id="line-262"></span><span>                    </span><span class="hs-comment">-- example:   cabal-version: &gt;=1.10 &amp;&amp; &lt;1.12</span><span>
</span><span id="line-263"></span><span>                    </span><span class="hs-comment">-- should be  cabal-version: &gt;=1.10</span><span>
</span><span id="line-264"></span><span>                    </span><span class="annot"><a href="../../base/src/Data.Either.html#Right"><span class="hs-identifier hs-type">Right</span></a></span><span> </span><span id="local-6989586621679680848"><span class="annot"><span class="annottext">VersionRange
</span><a href="#local-6989586621679680848"><span class="hs-identifier hs-var">vr</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="#local-6989586621679680856"><span class="hs-identifier hs-var">csv</span></a></span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion -&gt; CabalSpecVersion -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&lt;</span></span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="Distribution.CabalSpecVersion.html#CabalSpecV1_12"><span class="hs-identifier hs-var">CabalSpecV1_12</span></a></span><span>
</span><span id="line-265"></span><span>                            </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">VersionRange -&gt; Bool
</span><a href="#local-6989586621679680846"><span class="hs-identifier hs-var">simpleSpecVersionRangeSyntax</span></a></span><span> </span><span class="annot"><span class="annottext">VersionRange
</span><a href="#local-6989586621679680848"><span class="hs-identifier hs-var">vr</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PWarnType -&gt; String -&gt; m ()
forall (m :: * -&gt; *). CabalParsing m =&gt; PWarnType -&gt; String -&gt; m ()
</span><a href="Distribution.Parsec.html#parsecWarning"><span class="hs-identifier hs-var">parsecWarning</span></a></span><span> </span><span class="annot"><span class="annottext">PWarnType
</span><a href="Distribution.Parsec.Warning.html#PWTSpecVersion"><span class="hs-identifier hs-var">PWTSpecVersion</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; m ()) -&gt; String -&gt; m ()
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">[String] -&gt; String
forall (t :: * -&gt; *) a. Foldable t =&gt; t [a] -&gt; [a]
</span><a href="../../base/src/Data.Foldable.html#concat"><span class="hs-identifier hs-var">concat</span></a></span><span>
</span><span id="line-266"></span><span>                        </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;It is recommended that the 'cabal-version' field only specify a &quot;</span></span><span>
</span><span id="line-267"></span><span>                        </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;version range of the form '&gt;= x.y' for older cabal versions. Use &quot;</span></span><span>
</span><span id="line-268"></span><span>                        </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;'cabal-version: &gt;= &quot;</span></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">Version -&gt; String
forall a. Pretty a =&gt; a -&gt; String
</span><a href="Distribution.Pretty.html#prettyShow"><span class="hs-identifier hs-var">prettyShow</span></a></span><span> </span><span class="annot"><span class="annottext">Version
</span><a href="#local-6989586621679680863"><span class="hs-identifier hs-var">ver</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;'. &quot;</span></span><span>
</span><span id="line-269"></span><span>                        </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Tools based on Cabal 1.10 and later will ignore upper bounds.&quot;</span></span><span>
</span><span id="line-270"></span><span>                        </span><span class="hs-special">]</span><span>
</span><span id="line-271"></span><span>
</span><span id="line-272"></span><span>                    </span><span class="hs-comment">-- otherwise no warnings</span><span>
</span><span id="line-273"></span><span>                    </span><span class="annot"><span class="annottext">Either Version VersionRange
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">() -&gt; m ()
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-274"></span><span>
</span><span id="line-275"></span><span>                </span><span class="annot"><span class="annottext">SpecVersion -&gt; m SpecVersion
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CabalSpecVersion -&gt; SpecVersion
forall o n. Newtype o n =&gt; o -&gt; n
</span><a href="Distribution.Compat.Newtype.html#pack"><span class="hs-identifier hs-var">pack</span></a></span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="#local-6989586621679680856"><span class="hs-identifier hs-var">csv</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-276"></span><span>      </span><span class="hs-keyword">where</span><span>
</span><span id="line-277"></span><span>        </span><span id="local-6989586621679680864"><span class="annot"><span class="annottext">parsecSpecVersion :: m (Either Version VersionRange)
</span><a href="#local-6989586621679680864"><span class="hs-identifier hs-var hs-var">parsecSpecVersion</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Version -&gt; Either Version VersionRange
forall a b. a -&gt; Either a b
</span><a href="../../base/src/Data.Either.html#Left"><span class="hs-identifier hs-var">Left</span></a></span><span> </span><span class="annot"><span class="annottext">(Version -&gt; Either Version VersionRange)
-&gt; m Version -&gt; m (Either Version VersionRange)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">m Version
forall a (m :: * -&gt; *). (Parsec a, CabalParsing m) =&gt; m a
</span><a href="Distribution.Parsec.html#parsec"><span class="hs-identifier hs-var">parsec</span></a></span><span> </span><span class="annot"><span class="annottext">m (Either Version VersionRange)
-&gt; m (Either Version VersionRange)
-&gt; m (Either Version VersionRange)
forall (f :: * -&gt; *) a. Alternative f =&gt; f a -&gt; f a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#%3C%7C%3E"><span class="hs-operator hs-var">&lt;|&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">VersionRange -&gt; Either Version VersionRange
forall a b. b -&gt; Either a b
</span><a href="../../base/src/Data.Either.html#Right"><span class="hs-identifier hs-var">Right</span></a></span><span> </span><span class="annot"><span class="annottext">(VersionRange -&gt; Either Version VersionRange)
-&gt; m VersionRange -&gt; m (Either Version VersionRange)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">m VersionRange
</span><a href="#local-6989586621679680838"><span class="hs-identifier hs-var">range</span></a></span><span>
</span><span id="line-278"></span><span>
</span><span id="line-279"></span><span>        </span><span id="local-6989586621679680838"><span class="annot"><span class="annottext">range :: m VersionRange
</span><a href="#local-6989586621679680838"><span class="hs-identifier hs-var hs-var">range</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-280"></span><span>            </span><span id="local-6989586621679680829"><span class="annot"><span class="annottext">VersionRange
</span><a href="#local-6989586621679680829"><span class="hs-identifier hs-var">vr</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">m VersionRange
forall a (m :: * -&gt; *). (Parsec a, CabalParsing m) =&gt; m a
</span><a href="Distribution.Parsec.html#parsec"><span class="hs-identifier hs-var">parsec</span></a></span><span>
</span><span id="line-281"></span><span>            </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">VersionRange -&gt; Version
</span><a href="#local-6989586621679680860"><span class="hs-identifier hs-var">specVersionFromRange</span></a></span><span> </span><span class="annot"><span class="annottext">VersionRange
</span><a href="#local-6989586621679680829"><span class="hs-identifier hs-var">vr</span></a></span><span> </span><span class="annot"><span class="annottext">Version -&gt; Version -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&gt;=</span></span><span> </span><span class="annot"><span class="annottext">[Int] -&gt; Version
</span><a href="Distribution.Types.Version.html#mkVersion"><span class="hs-identifier hs-var">mkVersion</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">2</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span class="hs-special">]</span><span>
</span><span id="line-282"></span><span>            </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">String -&gt; m VersionRange
forall (m :: * -&gt; *) a. MonadFail m =&gt; String -&gt; m a
</span><a href="../../base/src/Control.Monad.Fail.html#fail"><span class="hs-identifier hs-var">fail</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;cabal-version higher than 2.2 cannot be specified as a range. See https://github.com/haskell/cabal/issues/4899&quot;</span></span><span>
</span><span id="line-283"></span><span>            </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">VersionRange -&gt; m VersionRange
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">VersionRange
</span><a href="#local-6989586621679680829"><span class="hs-identifier hs-var">vr</span></a></span><span>
</span><span id="line-284"></span><span>
</span><span id="line-285"></span><span>        </span><span class="annot"><a href="#local-6989586621679680860"><span class="hs-identifier hs-type">specVersionFromRange</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.VersionRange.Internal.html#VersionRange"><span class="hs-identifier hs-type">VersionRange</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.Version.html#Version"><span class="hs-identifier hs-type">Version</span></a></span><span>
</span><span id="line-286"></span><span>        </span><span id="local-6989586621679680860"><span class="annot"><span class="annottext">specVersionFromRange :: VersionRange -&gt; Version
</span><a href="#local-6989586621679680860"><span class="hs-identifier hs-var hs-var">specVersionFromRange</span></a></span></span><span> </span><span id="local-6989586621679680828"><span class="annot"><span class="annottext">VersionRange
</span><a href="#local-6989586621679680828"><span class="hs-identifier hs-var">versionRange</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">VersionRange -&gt; [VersionInterval]
</span><a href="Distribution.Types.VersionInterval.html#asVersionIntervals"><span class="hs-identifier hs-var">asVersionIntervals</span></a></span><span> </span><span class="annot"><span class="annottext">VersionRange
</span><a href="#local-6989586621679680828"><span class="hs-identifier hs-var">versionRange</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-287"></span><span>            </span><span class="hs-special">[</span><span class="hs-special">]</span><span>                            </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Version
</span><a href="Distribution.Types.Version.html#version0"><span class="hs-identifier hs-var">version0</span></a></span><span>
</span><span id="line-288"></span><span>            </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.VersionInterval.html#LowerBound"><span class="hs-identifier hs-type">LowerBound</span></a></span><span> </span><span id="local-6989586621679680826"><span class="annot"><span class="annottext">Version
</span><a href="#local-6989586621679680826"><span class="hs-identifier hs-var">version</span></a></span></span><span> </span><span class="annot"><span class="annottext">Bound
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">UpperBound
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span class="annot"><span class="annottext">[VersionInterval]
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Version
</span><a href="#local-6989586621679680826"><span class="hs-identifier hs-var">version</span></a></span><span>
</span><span id="line-289"></span><span>
</span><span id="line-290"></span><span>        </span><span id="local-6989586621679680846"><span class="annot"><span class="annottext">simpleSpecVersionRangeSyntax :: VersionRange -&gt; Bool
</span><a href="#local-6989586621679680846"><span class="hs-identifier hs-var hs-var">simpleSpecVersionRangeSyntax</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(VersionRangeF Bool -&gt; Bool) -&gt; VersionRange -&gt; Bool
forall a. (VersionRangeF a -&gt; a) -&gt; VersionRange -&gt; a
</span><a href="Distribution.Types.VersionRange.Internal.html#cataVersionRange"><span class="hs-identifier hs-var">cataVersionRange</span></a></span><span> </span><span class="annot"><span class="annottext">VersionRangeF Bool -&gt; Bool
forall {a}. VersionRangeF a -&gt; Bool
</span><a href="#local-6989586621679680825"><span class="hs-identifier hs-var">alg</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-291"></span><span>            </span><span id="local-6989586621679680825"><span class="annot"><span class="annottext">alg :: VersionRangeF a -&gt; Bool
</span><a href="#local-6989586621679680825"><span class="hs-identifier hs-var hs-var">alg</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.VersionRange.Internal.html#OrLaterVersionF"><span class="hs-identifier hs-type">OrLaterVersionF</span></a></span><span> </span><span class="annot"><span class="annottext">Version
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>
</span><span id="line-292"></span><span>            </span><span class="annot"><a href="#local-6989586621679680825"><span class="hs-identifier hs-var">alg</span></a></span><span> </span><span class="annot"><span class="annottext">VersionRangeF a
</span><span class="hs-identifier">_</span></span><span>                   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-293"></span><span>
</span><span id="line-294"></span><span>
</span><span id="line-295"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679680821"><span class="annot"><a href="Distribution.Pretty.html#Pretty"><span class="hs-identifier hs-type">Pretty</span></a></span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#SpecVersion"><span class="hs-identifier hs-type">SpecVersion</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-296"></span><span>    </span><span id="local-6989586621679680819"><span class="annot"><span class="annottext">pretty :: SpecVersion -&gt; Doc
</span><a href="#local-6989586621679680819"><span class="hs-identifier hs-var hs-var hs-var hs-var">pretty</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#SpecVersion"><span class="hs-identifier hs-type">SpecVersion</span></a></span><span> </span><span id="local-6989586621679680818"><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="#local-6989586621679680818"><span class="hs-identifier hs-var">csv</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-297"></span><span>        </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="#local-6989586621679680818"><span class="hs-identifier hs-var">csv</span></a></span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion -&gt; CabalSpecVersion -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&gt;=</span></span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="Distribution.CabalSpecVersion.html#CabalSpecV1_12"><span class="hs-identifier hs-var">CabalSpecV1_12</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="../../pretty/src/Text.PrettyPrint.HughesPJ.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CabalSpecVersion -&gt; String
</span><a href="Distribution.CabalSpecVersion.html#showCabalSpecVersion"><span class="hs-identifier hs-var">showCabalSpecVersion</span></a></span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="#local-6989586621679680818"><span class="hs-identifier hs-var">csv</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-298"></span><span>        </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>             </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="../../pretty/src/Text.PrettyPrint.HughesPJ.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&gt;=&quot;</span></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="Distribution.Compat.Prelude.html#%3C%3C%3E%3E"><span class="hs-operator hs-var">&lt;&lt;&gt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Doc
</span><a href="../../pretty/src/Text.PrettyPrint.HughesPJ.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CabalSpecVersion -&gt; String
</span><a href="Distribution.CabalSpecVersion.html#showCabalSpecVersion"><span class="hs-identifier hs-var">showCabalSpecVersion</span></a></span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="#local-6989586621679680818"><span class="hs-identifier hs-var">csv</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-299"></span><span>
</span><span id="line-300"></span><span class="hs-comment">-------------------------------------------------------------------------------</span><span>
</span><span id="line-301"></span><span class="hs-comment">-- SpecLicense</span><span>
</span><span id="line-302"></span><span class="hs-comment">-------------------------------------------------------------------------------</span><span>
</span><span id="line-303"></span><span>
</span><span id="line-304"></span><span class="hs-comment">-- | SPDX License expression or legacy license</span><span>
</span><span id="line-305"></span><span class="hs-keyword">newtype</span><span> </span><span id="SpecLicense"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#SpecLicense"><span class="hs-identifier hs-var">SpecLicense</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="SpecLicense"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#SpecLicense"><span class="hs-identifier hs-var">SpecLicense</span></a></span></span><span> </span><span class="hs-special">{</span><span> </span><span id="getSpecLicense"><span class="annot"><span class="annottext">SpecLicense -&gt; Either License License
</span><a href="Distribution.FieldGrammar.Newtypes.html#getSpecLicense"><span class="hs-identifier hs-var hs-var">getSpecLicense</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/Data.Either.html#Either"><span class="hs-identifier hs-type">Either</span></a></span><span> </span><span class="annot"><a href="Distribution.SPDX.License.html#License"><span class="hs-identifier hs-type">SPDX.License</span></a></span><span> </span><span class="annot"><a href="Distribution.License.html#License"><span class="hs-identifier hs-type">License</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-306"></span><span>
</span><span id="line-307"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679680810"><span id="local-6989586621679680812"><span class="annot"><a href="Distribution.Compat.Newtype.html#Newtype"><span class="hs-identifier hs-type">Newtype</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Either.html#Either"><span class="hs-identifier hs-type">Either</span></a></span><span> </span><span class="annot"><a href="Distribution.SPDX.License.html#License"><span class="hs-identifier hs-type">SPDX.License</span></a></span><span> </span><span class="annot"><a href="Distribution.License.html#License"><span class="hs-identifier hs-type">License</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#SpecLicense"><span class="hs-identifier hs-type">SpecLicense</span></a></span></span></span><span>
</span><span id="line-308"></span><span>
</span><span id="line-309"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="Distribution.Parsec.html#Parsec"><span class="hs-identifier hs-type">Parsec</span></a></span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#SpecLicense"><span class="hs-identifier hs-type">SpecLicense</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-310"></span><span>    </span><span id="local-6989586621679680788"><span class="annot"><span class="annottext">parsec :: forall (m :: * -&gt; *). CabalParsing m =&gt; m SpecLicense
</span><a href="#local-6989586621679680788"><span class="hs-identifier hs-var hs-var hs-var hs-var">parsec</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-311"></span><span>        </span><span id="local-6989586621679680787"><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="#local-6989586621679680787"><span class="hs-identifier hs-var">v</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">m CabalSpecVersion
forall (m :: * -&gt; *). CabalParsing m =&gt; m CabalSpecVersion
</span><a href="Distribution.Parsec.html#askCabalSpecVersion"><span class="hs-identifier hs-var">askCabalSpecVersion</span></a></span><span>
</span><span id="line-312"></span><span>        </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="#local-6989586621679680787"><span class="hs-identifier hs-var">v</span></a></span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion -&gt; CabalSpecVersion -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&gt;=</span></span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="Distribution.CabalSpecVersion.html#CabalSpecV2_2"><span class="hs-identifier hs-var">CabalSpecV2_2</span></a></span><span>
</span><span id="line-313"></span><span>        </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">Either License License -&gt; SpecLicense
</span><a href="Distribution.FieldGrammar.Newtypes.html#SpecLicense"><span class="hs-identifier hs-var">SpecLicense</span></a></span><span> </span><span class="annot"><span class="annottext">(Either License License -&gt; SpecLicense)
-&gt; (License -&gt; Either License License) -&gt; License -&gt; SpecLicense
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">License -&gt; Either License License
forall a b. a -&gt; Either a b
</span><a href="../../base/src/Data.Either.html#Left"><span class="hs-identifier hs-var">Left</span></a></span><span> </span><span class="annot"><span class="annottext">(License -&gt; SpecLicense) -&gt; m License -&gt; m SpecLicense
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">m License
forall a (m :: * -&gt; *). (Parsec a, CabalParsing m) =&gt; m a
</span><a href="Distribution.Parsec.html#parsec"><span class="hs-identifier hs-var">parsec</span></a></span><span>
</span><span id="line-314"></span><span>        </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">Either License License -&gt; SpecLicense
</span><a href="Distribution.FieldGrammar.Newtypes.html#SpecLicense"><span class="hs-identifier hs-var">SpecLicense</span></a></span><span> </span><span class="annot"><span class="annottext">(Either License License -&gt; SpecLicense)
-&gt; (License -&gt; Either License License) -&gt; License -&gt; SpecLicense
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">License -&gt; Either License License
forall a b. b -&gt; Either a b
</span><a href="../../base/src/Data.Either.html#Right"><span class="hs-identifier hs-var">Right</span></a></span><span> </span><span class="annot"><span class="annottext">(License -&gt; SpecLicense) -&gt; m License -&gt; m SpecLicense
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">m License
forall a (m :: * -&gt; *). (Parsec a, CabalParsing m) =&gt; m a
</span><a href="Distribution.Parsec.html#parsec"><span class="hs-identifier hs-var">parsec</span></a></span><span>
</span><span id="line-315"></span><span>
</span><span id="line-316"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679680784"><span class="annot"><a href="Distribution.Pretty.html#Pretty"><span class="hs-identifier hs-type">Pretty</span></a></span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#SpecLicense"><span class="hs-identifier hs-type">SpecLicense</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-317"></span><span>    </span><span id="local-6989586621679680778"><span class="annot"><span class="annottext">pretty :: SpecLicense -&gt; Doc
</span><a href="#local-6989586621679680778"><span class="hs-identifier hs-var hs-var hs-var hs-var">pretty</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(License -&gt; Doc)
-&gt; (License -&gt; Doc) -&gt; Either License License -&gt; Doc
forall a c b. (a -&gt; c) -&gt; (b -&gt; c) -&gt; Either a b -&gt; c
</span><a href="../../base/src/Data.Either.html#either"><span class="hs-identifier hs-var">either</span></a></span><span> </span><span class="annot"><span class="annottext">License -&gt; Doc
forall a. Pretty a =&gt; a -&gt; Doc
</span><a href="Distribution.Pretty.html#pretty"><span class="hs-identifier hs-var">pretty</span></a></span><span> </span><span class="annot"><span class="annottext">License -&gt; Doc
forall a. Pretty a =&gt; a -&gt; Doc
</span><a href="Distribution.Pretty.html#pretty"><span class="hs-identifier hs-var">pretty</span></a></span><span> </span><span class="annot"><span class="annottext">(Either License License -&gt; Doc)
-&gt; (SpecLicense -&gt; Either License License) -&gt; SpecLicense -&gt; Doc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">SpecLicense -&gt; Either License License
forall o n. Newtype o n =&gt; n -&gt; o
</span><a href="Distribution.Compat.Newtype.html#unpack"><span class="hs-identifier hs-var">unpack</span></a></span><span>
</span><span id="line-318"></span><span>
</span><span id="line-319"></span><span class="hs-comment">-------------------------------------------------------------------------------</span><span>
</span><span id="line-320"></span><span class="hs-comment">-- TestedWith</span><span>
</span><span id="line-321"></span><span class="hs-comment">-------------------------------------------------------------------------------</span><span>
</span><span id="line-322"></span><span>
</span><span id="line-323"></span><span class="hs-comment">-- | Version range or just version</span><span>
</span><span id="line-324"></span><span class="hs-keyword">newtype</span><span> </span><span id="TestedWith"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#TestedWith"><span class="hs-identifier hs-var">TestedWith</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="TestedWith"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#TestedWith"><span class="hs-identifier hs-var">TestedWith</span></a></span></span><span> </span><span class="hs-special">{</span><span> </span><span id="getTestedWith"><span class="annot"><span class="annottext">TestedWith -&gt; (CompilerFlavor, VersionRange)
</span><a href="Distribution.FieldGrammar.Newtypes.html#getTestedWith"><span class="hs-identifier hs-var hs-var">getTestedWith</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Compiler.html#CompilerFlavor"><span class="hs-identifier hs-type">CompilerFlavor</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Types.VersionRange.Internal.html#VersionRange"><span class="hs-identifier hs-type">VersionRange</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-325"></span><span>
</span><span id="line-326"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679680772"><span id="local-6989586621679680774"><span class="annot"><a href="Distribution.Compat.Newtype.html#Newtype"><span class="hs-identifier hs-type">Newtype</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Compiler.html#CompilerFlavor"><span class="hs-identifier hs-type">CompilerFlavor</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Types.VersionRange.Internal.html#VersionRange"><span class="hs-identifier hs-type">VersionRange</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#TestedWith"><span class="hs-identifier hs-type">TestedWith</span></a></span></span></span><span>
</span><span id="line-327"></span><span>
</span><span id="line-328"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="Distribution.Parsec.html#Parsec"><span class="hs-identifier hs-type">Parsec</span></a></span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#TestedWith"><span class="hs-identifier hs-type">TestedWith</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-329"></span><span>    </span><span id="local-6989586621679680760"><span class="annot"><span class="annottext">parsec :: forall (m :: * -&gt; *). CabalParsing m =&gt; m TestedWith
</span><a href="#local-6989586621679680760"><span class="hs-identifier hs-var hs-var hs-var hs-var">parsec</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(CompilerFlavor, VersionRange) -&gt; TestedWith
forall o n. Newtype o n =&gt; o -&gt; n
</span><a href="Distribution.Compat.Newtype.html#pack"><span class="hs-identifier hs-var">pack</span></a></span><span> </span><span class="annot"><span class="annottext">((CompilerFlavor, VersionRange) -&gt; TestedWith)
-&gt; m (CompilerFlavor, VersionRange) -&gt; m TestedWith
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">m (CompilerFlavor, VersionRange)
forall (m :: * -&gt; *).
CabalParsing m =&gt;
m (CompilerFlavor, VersionRange)
</span><a href="Distribution.FieldGrammar.Newtypes.html#parsecTestedWith"><span class="hs-identifier hs-var">parsecTestedWith</span></a></span><span>
</span><span id="line-330"></span><span>
</span><span id="line-331"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679680756"><span class="annot"><a href="Distribution.Pretty.html#Pretty"><span class="hs-identifier hs-type">Pretty</span></a></span><span> </span><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#TestedWith"><span class="hs-identifier hs-type">TestedWith</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-332"></span><span>    </span><span id="local-6989586621679680750"><span class="annot"><span class="annottext">pretty :: TestedWith -&gt; Doc
</span><a href="#local-6989586621679680750"><span class="hs-identifier hs-var hs-var hs-var hs-var">pretty</span></a></span></span><span> </span><span id="local-6989586621679680749"><span class="annot"><span class="annottext">TestedWith
</span><a href="#local-6989586621679680749"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">TestedWith -&gt; (CompilerFlavor, VersionRange)
forall o n. Newtype o n =&gt; n -&gt; o
</span><a href="Distribution.Compat.Newtype.html#unpack"><span class="hs-identifier hs-var">unpack</span></a></span><span> </span><span class="annot"><span class="annottext">TestedWith
</span><a href="#local-6989586621679680749"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-333"></span><span>        </span><span class="hs-special">(</span><span id="local-6989586621679680748"><span class="annot"><span class="annottext">CompilerFlavor
</span><a href="#local-6989586621679680748"><span class="hs-identifier hs-var">compiler</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679680747"><span class="annot"><span class="annottext">VersionRange
</span><a href="#local-6989586621679680747"><span class="hs-identifier hs-var">vr</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">CompilerFlavor -&gt; Doc
forall a. Pretty a =&gt; a -&gt; Doc
</span><a href="Distribution.Pretty.html#pretty"><span class="hs-identifier hs-var">pretty</span></a></span><span> </span><span class="annot"><span class="annottext">CompilerFlavor
</span><a href="#local-6989586621679680748"><span class="hs-identifier hs-var">compiler</span></a></span><span> </span><span class="annot"><span class="annottext">Doc -&gt; Doc -&gt; Doc
</span><a href="../../pretty/src/Text.PrettyPrint.HughesPJ.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">VersionRange -&gt; Doc
forall a. Pretty a =&gt; a -&gt; Doc
</span><a href="Distribution.Pretty.html#pretty"><span class="hs-identifier hs-var">pretty</span></a></span><span> </span><span class="annot"><span class="annottext">VersionRange
</span><a href="#local-6989586621679680747"><span class="hs-identifier hs-var">vr</span></a></span><span>
</span><span id="line-334"></span><span>
</span><span id="line-335"></span><span id="local-6989586621679681317"><span class="annot"><a href="Distribution.FieldGrammar.Newtypes.html#parsecTestedWith"><span class="hs-identifier hs-type">parsecTestedWith</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Parsec.html#CabalParsing"><span class="hs-identifier hs-type">CabalParsing</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679681317"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679681317"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Compiler.html#CompilerFlavor"><span class="hs-identifier hs-type">CompilerFlavor</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Types.VersionRange.Internal.html#VersionRange"><span class="hs-identifier hs-type">VersionRange</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-336"></span><span id="parsecTestedWith"><span class="annot"><span class="annottext">parsecTestedWith :: forall (m :: * -&gt; *).
CabalParsing m =&gt;
m (CompilerFlavor, VersionRange)
</span><a href="Distribution.FieldGrammar.Newtypes.html#parsecTestedWith"><span class="hs-identifier hs-var hs-var">parsecTestedWith</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-337"></span><span>    </span><span id="local-6989586621679680728"><span class="annot"><span class="annottext">CompilerFlavor
</span><a href="#local-6989586621679680728"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">m CompilerFlavor
forall (m :: * -&gt; *) a. (CabalParsing m, Parsec a) =&gt; m a
</span><a href="Distribution.Parsec.html#lexemeParsec"><span class="hs-identifier hs-var">lexemeParsec</span></a></span><span>
</span><span id="line-338"></span><span>    </span><span id="local-6989586621679680726"><span class="annot"><span class="annottext">VersionRange
</span><a href="#local-6989586621679680726"><span class="hs-identifier hs-var">ver</span></a></span></span><span>  </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">m VersionRange
forall a (m :: * -&gt; *). (Parsec a, CabalParsing m) =&gt; m a
</span><a href="Distribution.Parsec.html#parsec"><span class="hs-identifier hs-var">parsec</span></a></span><span> </span><span class="annot"><span class="annottext">m VersionRange -&gt; m VersionRange -&gt; m VersionRange
forall (f :: * -&gt; *) a. Alternative f =&gt; f a -&gt; f a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#%3C%7C%3E"><span class="hs-operator hs-var">&lt;|&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">VersionRange -&gt; m VersionRange
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">VersionRange
</span><a href="Distribution.Types.VersionRange.Internal.html#anyVersion"><span class="hs-identifier hs-var">anyVersion</span></a></span><span>
</span><span id="line-339"></span><span>    </span><span class="annot"><span class="annottext">(CompilerFlavor, VersionRange) -&gt; m (CompilerFlavor, VersionRange)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CompilerFlavor
</span><a href="#local-6989586621679680728"><span class="hs-identifier hs-var">name</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">VersionRange
</span><a href="#local-6989586621679680726"><span class="hs-identifier hs-var">ver</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-340"></span></pre></body></html>